/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, 19 ms] (6) HASKELL (7) LetRed [EQUIVALENT, 0 ms] (8) HASKELL (9) NumRed [SOUND, 0 ms] (10) HASKELL (11) Narrow [SOUND, 0 ms] (12) AND (13) QDP (14) 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) MRRProof [EQUIVALENT, 45 ms] (30) QDP (31) PisEmptyProof [EQUIVALENT, 0 ms] (32) YES (33) QDP (34) QDPOrderProof [EQUIVALENT, 19 ms] (35) QDP (36) DependencyGraphProof [EQUIVALENT, 0 ms] (37) QDP (38) QDPSizeChangeProof [EQUIVALENT, 0 ms] (39) YES (40) QDP (41) QDPSizeChangeProof [EQUIVALENT, 0 ms] (42) YES (43) QDP (44) QDPSizeChangeProof [EQUIVALENT, 0 ms] (45) YES (46) QDP (47) QDPSizeChangeProof [EQUIVALENT, 0 ms] (48) YES (49) QDP (50) QDPSizeChangeProof [EQUIVALENT, 0 ms] (51) YES (52) QDP (53) QDPSizeChangeProof [EQUIVALENT, 0 ms] (54) YES (55) QDP (56) DependencyGraphProof [EQUIVALENT, 0 ms] (57) AND (58) QDP (59) QDPOrderProof [EQUIVALENT, 0 ms] (60) QDP (61) DependencyGraphProof [EQUIVALENT, 0 ms] (62) QDP (63) QDPSizeChangeProof [EQUIVALENT, 0 ms] (64) YES (65) QDP (66) MRRProof [EQUIVALENT, 0 ms] (67) QDP (68) PisEmptyProof [EQUIVALENT, 0 ms] (69) YES (70) QDP (71) TransformationProof [EQUIVALENT, 9 ms] (72) QDP (73) UsableRulesProof [EQUIVALENT, 0 ms] (74) QDP (75) QReductionProof [EQUIVALENT, 0 ms] (76) QDP (77) TransformationProof [EQUIVALENT, 0 ms] (78) QDP (79) TransformationProof [EQUIVALENT, 0 ms] (80) QDP (81) UsableRulesProof [EQUIVALENT, 0 ms] (82) QDP (83) QReductionProof [EQUIVALENT, 0 ms] (84) QDP (85) InductionCalculusProof [EQUIVALENT, 0 ms] (86) QDP (87) TransformationProof [EQUIVALENT, 3 ms] (88) QDP (89) TransformationProof [EQUIVALENT, 0 ms] (90) QDP (91) UsableRulesProof [EQUIVALENT, 0 ms] (92) QDP (93) TransformationProof [EQUIVALENT, 0 ms] (94) QDP (95) UsableRulesProof [EQUIVALENT, 0 ms] (96) QDP (97) TransformationProof [EQUIVALENT, 0 ms] (98) QDP (99) DependencyGraphProof [EQUIVALENT, 0 ms] (100) QDP (101) UsableRulesProof [EQUIVALENT, 0 ms] (102) QDP (103) TransformationProof [EQUIVALENT, 0 ms] (104) QDP (105) UsableRulesProof [EQUIVALENT, 0 ms] (106) QDP (107) TransformationProof [EQUIVALENT, 0 ms] (108) QDP (109) DependencyGraphProof [EQUIVALENT, 0 ms] (110) QDP (111) UsableRulesProof [EQUIVALENT, 0 ms] (112) QDP (113) TransformationProof [EQUIVALENT, 0 ms] (114) QDP (115) UsableRulesProof [EQUIVALENT, 0 ms] (116) QDP (117) TransformationProof [EQUIVALENT, 0 ms] (118) QDP (119) DependencyGraphProof [EQUIVALENT, 0 ms] (120) QDP (121) UsableRulesProof [EQUIVALENT, 0 ms] (122) QDP (123) TransformationProof [EQUIVALENT, 0 ms] (124) QDP (125) DependencyGraphProof [EQUIVALENT, 0 ms] (126) QDP (127) UsableRulesProof [EQUIVALENT, 0 ms] (128) QDP (129) QReductionProof [EQUIVALENT, 0 ms] (130) QDP (131) TransformationProof [EQUIVALENT, 0 ms] (132) QDP (133) DependencyGraphProof [EQUIVALENT, 0 ms] (134) QDP (135) TransformationProof [EQUIVALENT, 0 ms] (136) QDP (137) TransformationProof [EQUIVALENT, 0 ms] (138) QDP (139) TransformationProof [EQUIVALENT, 0 ms] (140) QDP (141) TransformationProof [EQUIVALENT, 0 ms] (142) QDP (143) TransformationProof [EQUIVALENT, 0 ms] (144) QDP (145) TransformationProof [EQUIVALENT, 0 ms] (146) QDP (147) DependencyGraphProof [EQUIVALENT, 0 ms] (148) QDP (149) TransformationProof [EQUIVALENT, 0 ms] (150) QDP (151) TransformationProof [EQUIVALENT, 0 ms] (152) QDP (153) TransformationProof [EQUIVALENT, 0 ms] (154) QDP (155) DependencyGraphProof [EQUIVALENT, 0 ms] (156) QDP (157) TransformationProof [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) DependencyGraphProof [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) DependencyGraphProof [EQUIVALENT, 0 ms] (192) QDP (193) TransformationProof [EQUIVALENT, 0 ms] (194) QDP (195) TransformationProof [EQUIVALENT, 0 ms] (196) QDP (197) TransformationProof [EQUIVALENT, 0 ms] (198) QDP (199) DependencyGraphProof [EQUIVALENT, 0 ms] (200) QDP (201) TransformationProof [EQUIVALENT, 0 ms] (202) QDP (203) TransformationProof [EQUIVALENT, 0 ms] (204) QDP (205) TransformationProof [EQUIVALENT, 0 ms] (206) QDP (207) TransformationProof [EQUIVALENT, 0 ms] (208) QDP (209) TransformationProof [EQUIVALENT, 0 ms] (210) QDP (211) TransformationProof [EQUIVALENT, 0 ms] (212) QDP (213) DependencyGraphProof [EQUIVALENT, 0 ms] (214) QDP (215) TransformationProof [EQUIVALENT, 0 ms] (216) QDP (217) TransformationProof [EQUIVALENT, 0 ms] (218) QDP (219) TransformationProof [EQUIVALENT, 0 ms] (220) QDP (221) TransformationProof [EQUIVALENT, 0 ms] (222) QDP (223) TransformationProof [EQUIVALENT, 0 ms] (224) QDP (225) TransformationProof [EQUIVALENT, 0 ms] (226) QDP (227) TransformationProof [EQUIVALENT, 0 ms] (228) QDP (229) TransformationProof [EQUIVALENT, 0 ms] (230) QDP (231) TransformationProof [EQUIVALENT, 0 ms] (232) QDP (233) TransformationProof [EQUIVALENT, 0 ms] (234) QDP (235) TransformationProof [EQUIVALENT, 0 ms] (236) QDP (237) TransformationProof [EQUIVALENT, 0 ms] (238) QDP (239) TransformationProof [EQUIVALENT, 0 ms] (240) QDP (241) TransformationProof [EQUIVALENT, 0 ms] (242) QDP (243) DependencyGraphProof [EQUIVALENT, 0 ms] (244) QDP (245) TransformationProof [EQUIVALENT, 0 ms] (246) QDP (247) TransformationProof [EQUIVALENT, 0 ms] (248) QDP (249) TransformationProof [EQUIVALENT, 0 ms] (250) QDP (251) TransformationProof [EQUIVALENT, 0 ms] (252) QDP (253) TransformationProof [EQUIVALENT, 0 ms] (254) QDP (255) TransformationProof [EQUIVALENT, 0 ms] (256) QDP (257) TransformationProof [EQUIVALENT, 0 ms] (258) QDP (259) DependencyGraphProof [EQUIVALENT, 0 ms] (260) QDP (261) TransformationProof [EQUIVALENT, 0 ms] (262) QDP (263) TransformationProof [EQUIVALENT, 0 ms] (264) QDP (265) TransformationProof [EQUIVALENT, 0 ms] (266) QDP (267) TransformationProof [EQUIVALENT, 0 ms] (268) QDP (269) TransformationProof [EQUIVALENT, 0 ms] (270) QDP (271) 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) TransformationProof [EQUIVALENT, 0 ms] (280) QDP (281) TransformationProof [EQUIVALENT, 0 ms] (282) QDP (283) TransformationProof [EQUIVALENT, 0 ms] (284) QDP (285) TransformationProof [EQUIVALENT, 0 ms] (286) QDP (287) TransformationProof [EQUIVALENT, 0 ms] (288) QDP (289) DependencyGraphProof [EQUIVALENT, 0 ms] (290) QDP (291) TransformationProof [EQUIVALENT, 0 ms] (292) QDP (293) TransformationProof [EQUIVALENT, 0 ms] (294) QDP (295) TransformationProof [EQUIVALENT, 0 ms] (296) QDP (297) TransformationProof [EQUIVALENT, 0 ms] (298) QDP (299) TransformationProof [EQUIVALENT, 0 ms] (300) QDP (301) TransformationProof [EQUIVALENT, 0 ms] (302) QDP (303) TransformationProof [EQUIVALENT, 0 ms] (304) QDP (305) DependencyGraphProof [EQUIVALENT, 0 ms] (306) QDP (307) TransformationProof [EQUIVALENT, 0 ms] (308) QDP (309) TransformationProof [EQUIVALENT, 0 ms] (310) QDP (311) TransformationProof [EQUIVALENT, 0 ms] (312) QDP (313) TransformationProof [EQUIVALENT, 0 ms] (314) QDP (315) TransformationProof [EQUIVALENT, 0 ms] (316) QDP (317) TransformationProof [EQUIVALENT, 0 ms] (318) QDP (319) TransformationProof [EQUIVALENT, 0 ms] (320) QDP (321) TransformationProof [EQUIVALENT, 0 ms] (322) QDP (323) TransformationProof [EQUIVALENT, 0 ms] (324) QDP (325) TransformationProof [EQUIVALENT, 0 ms] (326) QDP (327) TransformationProof [EQUIVALENT, 0 ms] (328) QDP (329) TransformationProof [EQUIVALENT, 0 ms] (330) QDP (331) TransformationProof [EQUIVALENT, 0 ms] (332) QDP (333) TransformationProof [EQUIVALENT, 0 ms] (334) QDP (335) DependencyGraphProof [EQUIVALENT, 0 ms] (336) QDP (337) TransformationProof [EQUIVALENT, 0 ms] (338) QDP (339) TransformationProof [EQUIVALENT, 0 ms] (340) QDP (341) TransformationProof [EQUIVALENT, 0 ms] (342) QDP (343) TransformationProof [EQUIVALENT, 1 ms] (344) QDP (345) TransformationProof [EQUIVALENT, 0 ms] (346) QDP (347) TransformationProof [EQUIVALENT, 0 ms] (348) QDP (349) TransformationProof [EQUIVALENT, 0 ms] (350) QDP (351) DependencyGraphProof [EQUIVALENT, 0 ms] (352) QDP (353) TransformationProof [EQUIVALENT, 0 ms] (354) QDP (355) TransformationProof [EQUIVALENT, 0 ms] (356) QDP (357) TransformationProof [EQUIVALENT, 0 ms] (358) QDP (359) TransformationProof [EQUIVALENT, 0 ms] (360) QDP (361) TransformationProof [EQUIVALENT, 0 ms] (362) QDP (363) TransformationProof [EQUIVALENT, 0 ms] (364) QDP (365) TransformationProof [EQUIVALENT, 0 ms] (366) QDP (367) TransformationProof [EQUIVALENT, 0 ms] (368) QDP (369) TransformationProof [EQUIVALENT, 0 ms] (370) QDP (371) TransformationProof [EQUIVALENT, 0 ms] (372) QDP (373) TransformationProof [EQUIVALENT, 0 ms] (374) QDP (375) TransformationProof [EQUIVALENT, 0 ms] (376) QDP (377) TransformationProof [EQUIVALENT, 0 ms] (378) QDP (379) TransformationProof [EQUIVALENT, 0 ms] (380) QDP (381) DependencyGraphProof [EQUIVALENT, 0 ms] (382) QDP (383) TransformationProof [EQUIVALENT, 0 ms] (384) QDP (385) TransformationProof [EQUIVALENT, 0 ms] (386) QDP (387) TransformationProof [EQUIVALENT, 0 ms] (388) QDP (389) TransformationProof [EQUIVALENT, 0 ms] (390) QDP (391) TransformationProof [EQUIVALENT, 0 ms] (392) QDP (393) TransformationProof [EQUIVALENT, 0 ms] (394) QDP (395) TransformationProof [EQUIVALENT, 0 ms] (396) QDP (397) DependencyGraphProof [EQUIVALENT, 0 ms] (398) QDP (399) TransformationProof [EQUIVALENT, 0 ms] (400) QDP (401) TransformationProof [EQUIVALENT, 0 ms] (402) QDP (403) TransformationProof [EQUIVALENT, 0 ms] (404) QDP (405) TransformationProof [EQUIVALENT, 0 ms] (406) QDP (407) TransformationProof [EQUIVALENT, 0 ms] (408) QDP (409) TransformationProof [EQUIVALENT, 0 ms] (410) QDP (411) TransformationProof [EQUIVALENT, 0 ms] (412) QDP (413) TransformationProof [EQUIVALENT, 0 ms] (414) QDP (415) TransformationProof [EQUIVALENT, 0 ms] (416) QDP (417) TransformationProof [EQUIVALENT, 0 ms] (418) QDP (419) TransformationProof [EQUIVALENT, 0 ms] (420) QDP (421) TransformationProof [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) TransformationProof [EQUIVALENT, 0 ms] (446) QDP (447) TransformationProof [EQUIVALENT, 0 ms] (448) QDP (449) TransformationProof [EQUIVALENT, 0 ms] (450) QDP (451) TransformationProof [EQUIVALENT, 0 ms] (452) QDP (453) TransformationProof [EQUIVALENT, 0 ms] (454) QDP (455) TransformationProof [EQUIVALENT, 0 ms] (456) QDP (457) DependencyGraphProof [EQUIVALENT, 0 ms] (458) QDP (459) TransformationProof [EQUIVALENT, 0 ms] (460) QDP (461) TransformationProof [EQUIVALENT, 0 ms] (462) QDP (463) TransformationProof [EQUIVALENT, 0 ms] (464) QDP (465) TransformationProof [EQUIVALENT, 0 ms] (466) QDP (467) TransformationProof [EQUIVALENT, 0 ms] (468) QDP (469) TransformationProof [EQUIVALENT, 0 ms] (470) QDP (471) TransformationProof [EQUIVALENT, 0 ms] (472) QDP (473) TransformationProof [EQUIVALENT, 0 ms] (474) QDP (475) TransformationProof [EQUIVALENT, 0 ms] (476) QDP (477) TransformationProof [EQUIVALENT, 0 ms] (478) QDP (479) TransformationProof [EQUIVALENT, 0 ms] (480) QDP (481) TransformationProof [EQUIVALENT, 0 ms] (482) QDP (483) TransformationProof [EQUIVALENT, 0 ms] (484) QDP (485) TransformationProof [EQUIVALENT, 0 ms] (486) QDP (487) TransformationProof [EQUIVALENT, 0 ms] (488) QDP (489) TransformationProof [EQUIVALENT, 0 ms] (490) QDP (491) DependencyGraphProof [EQUIVALENT, 0 ms] (492) 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) TransformationProof [EQUIVALENT, 0 ms] (504) QDP (505) TransformationProof [EQUIVALENT, 0 ms] (506) QDP (507) TransformationProof [EQUIVALENT, 0 ms] (508) QDP (509) TransformationProof [EQUIVALENT, 0 ms] (510) QDP (511) TransformationProof [EQUIVALENT, 0 ms] (512) QDP (513) TransformationProof [EQUIVALENT, 0 ms] (514) QDP (515) TransformationProof [EQUIVALENT, 0 ms] (516) QDP (517) DependencyGraphProof [EQUIVALENT, 0 ms] (518) QDP (519) TransformationProof [EQUIVALENT, 0 ms] (520) QDP (521) TransformationProof [EQUIVALENT, 0 ms] (522) QDP (523) TransformationProof [EQUIVALENT, 0 ms] (524) QDP (525) TransformationProof [EQUIVALENT, 0 ms] (526) QDP (527) TransformationProof [EQUIVALENT, 0 ms] (528) QDP (529) TransformationProof [EQUIVALENT, 0 ms] (530) QDP (531) TransformationProof [EQUIVALENT, 0 ms] (532) QDP (533) TransformationProof [EQUIVALENT, 0 ms] (534) QDP (535) TransformationProof [EQUIVALENT, 0 ms] (536) QDP (537) TransformationProof [EQUIVALENT, 0 ms] (538) QDP (539) TransformationProof [EQUIVALENT, 0 ms] (540) QDP (541) TransformationProof [EQUIVALENT, 0 ms] (542) QDP (543) TransformationProof [EQUIVALENT, 0 ms] (544) QDP (545) TransformationProof [EQUIVALENT, 0 ms] (546) QDP (547) TransformationProof [EQUIVALENT, 0 ms] (548) QDP (549) TransformationProof [EQUIVALENT, 0 ms] (550) QDP (551) DependencyGraphProof [EQUIVALENT, 0 ms] (552) QDP (553) TransformationProof [EQUIVALENT, 0 ms] (554) QDP (555) TransformationProof [EQUIVALENT, 0 ms] (556) QDP (557) TransformationProof [EQUIVALENT, 0 ms] (558) QDP (559) TransformationProof [EQUIVALENT, 0 ms] (560) QDP (561) TransformationProof [EQUIVALENT, 0 ms] (562) QDP (563) TransformationProof [EQUIVALENT, 0 ms] (564) QDP (565) TransformationProof [EQUIVALENT, 0 ms] (566) QDP (567) TransformationProof [EQUIVALENT, 0 ms] (568) QDP (569) TransformationProof [EQUIVALENT, 0 ms] (570) QDP (571) TransformationProof [EQUIVALENT, 0 ms] (572) QDP (573) TransformationProof [EQUIVALENT, 0 ms] (574) QDP (575) TransformationProof [EQUIVALENT, 0 ms] (576) QDP (577) DependencyGraphProof [EQUIVALENT, 0 ms] (578) QDP (579) TransformationProof [EQUIVALENT, 0 ms] (580) QDP (581) TransformationProof [EQUIVALENT, 0 ms] (582) QDP (583) TransformationProof [EQUIVALENT, 0 ms] (584) QDP (585) TransformationProof [EQUIVALENT, 0 ms] (586) QDP (587) TransformationProof [EQUIVALENT, 0 ms] (588) QDP (589) TransformationProof [EQUIVALENT, 0 ms] (590) QDP (591) TransformationProof [EQUIVALENT, 0 ms] (592) QDP (593) TransformationProof [EQUIVALENT, 0 ms] (594) QDP (595) TransformationProof [EQUIVALENT, 0 ms] (596) QDP (597) TransformationProof [EQUIVALENT, 0 ms] (598) QDP (599) TransformationProof [EQUIVALENT, 0 ms] (600) QDP (601) TransformationProof [EQUIVALENT, 0 ms] (602) QDP (603) TransformationProof [EQUIVALENT, 0 ms] (604) QDP (605) TransformationProof [EQUIVALENT, 0 ms] (606) QDP (607) TransformationProof [EQUIVALENT, 0 ms] (608) QDP (609) TransformationProof [EQUIVALENT, 0 ms] (610) QDP (611) DependencyGraphProof [EQUIVALENT, 0 ms] (612) QDP (613) TransformationProof [EQUIVALENT, 0 ms] (614) QDP (615) TransformationProof [EQUIVALENT, 0 ms] (616) QDP (617) TransformationProof [EQUIVALENT, 0 ms] (618) QDP (619) TransformationProof [EQUIVALENT, 0 ms] (620) QDP (621) TransformationProof [EQUIVALENT, 0 ms] (622) QDP (623) TransformationProof [EQUIVALENT, 0 ms] (624) QDP (625) 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) DependencyGraphProof [EQUIVALENT, 0 ms] (638) QDP (639) TransformationProof [EQUIVALENT, 0 ms] (640) QDP (641) TransformationProof [EQUIVALENT, 0 ms] (642) QDP (643) QDPOrderProof [EQUIVALENT, 82 ms] (644) QDP (645) QDPOrderProof [EQUIVALENT, 76 ms] (646) QDP (647) InductionCalculusProof [EQUIVALENT, 0 ms] (648) QDP (649) QDP (650) QDPSizeChangeProof [EQUIVALENT, 0 ms] (651) YES (652) QDP (653) QDPSizeChangeProof [EQUIVALENT, 0 ms] (654) YES (655) QDP (656) QDPSizeChangeProof [EQUIVALENT, 0 ms] (657) YES (658) QDP (659) QDPSizeChangeProof [EQUIVALENT, 0 ms] (660) YES (661) QDP (662) TransformationProof [EQUIVALENT, 13 ms] (663) QDP (664) UsableRulesProof [EQUIVALENT, 0 ms] (665) QDP (666) QReductionProof [EQUIVALENT, 0 ms] (667) QDP (668) TransformationProof [EQUIVALENT, 0 ms] (669) QDP (670) TransformationProof [EQUIVALENT, 0 ms] (671) QDP (672) UsableRulesProof [EQUIVALENT, 0 ms] (673) QDP (674) QReductionProof [EQUIVALENT, 0 ms] (675) QDP (676) TransformationProof [EQUIVALENT, 0 ms] (677) QDP (678) UsableRulesProof [EQUIVALENT, 0 ms] (679) QDP (680) QReductionProof [EQUIVALENT, 0 ms] (681) QDP (682) InductionCalculusProof [EQUIVALENT, 0 ms] (683) QDP (684) TransformationProof [EQUIVALENT, 0 ms] (685) QDP (686) TransformationProof [EQUIVALENT, 0 ms] (687) QDP (688) DependencyGraphProof [EQUIVALENT, 0 ms] (689) QDP (690) TransformationProof [EQUIVALENT, 0 ms] (691) QDP (692) DependencyGraphProof [EQUIVALENT, 0 ms] (693) QDP (694) TransformationProof [EQUIVALENT, 0 ms] (695) QDP (696) DependencyGraphProof [EQUIVALENT, 0 ms] (697) QDP (698) TransformationProof [EQUIVALENT, 0 ms] (699) QDP (700) DependencyGraphProof [EQUIVALENT, 0 ms] (701) QDP (702) TransformationProof [EQUIVALENT, 0 ms] (703) QDP (704) DependencyGraphProof [EQUIVALENT, 0 ms] (705) AND (706) QDP (707) UsableRulesProof [EQUIVALENT, 0 ms] (708) QDP (709) QReductionProof [EQUIVALENT, 0 ms] (710) QDP (711) TransformationProof [EQUIVALENT, 0 ms] (712) QDP (713) DependencyGraphProof [EQUIVALENT, 0 ms] (714) QDP (715) TransformationProof [EQUIVALENT, 0 ms] (716) QDP (717) TransformationProof [EQUIVALENT, 0 ms] (718) QDP (719) DependencyGraphProof [EQUIVALENT, 0 ms] (720) QDP (721) TransformationProof [EQUIVALENT, 0 ms] (722) QDP (723) DependencyGraphProof [EQUIVALENT, 0 ms] (724) AND (725) QDP (726) UsableRulesProof [EQUIVALENT, 0 ms] (727) QDP (728) QReductionProof [EQUIVALENT, 0 ms] (729) QDP (730) TransformationProof [EQUIVALENT, 0 ms] (731) QDP (732) TransformationProof [EQUIVALENT, 0 ms] (733) QDP (734) TransformationProof [EQUIVALENT, 0 ms] (735) QDP (736) TransformationProof [EQUIVALENT, 0 ms] (737) QDP (738) DependencyGraphProof [EQUIVALENT, 0 ms] (739) QDP (740) TransformationProof [EQUIVALENT, 0 ms] (741) QDP (742) TransformationProof [EQUIVALENT, 0 ms] (743) QDP (744) DependencyGraphProof [EQUIVALENT, 0 ms] (745) QDP (746) TransformationProof [EQUIVALENT, 0 ms] (747) QDP (748) TransformationProof [EQUIVALENT, 0 ms] (749) QDP (750) TransformationProof [EQUIVALENT, 0 ms] (751) QDP (752) DependencyGraphProof [EQUIVALENT, 0 ms] (753) QDP (754) TransformationProof [EQUIVALENT, 0 ms] (755) QDP (756) TransformationProof [EQUIVALENT, 0 ms] (757) QDP (758) DependencyGraphProof [EQUIVALENT, 0 ms] (759) QDP (760) TransformationProof [EQUIVALENT, 0 ms] (761) QDP (762) QDPSizeChangeProof [EQUIVALENT, 0 ms] (763) YES (764) QDP (765) UsableRulesProof [EQUIVALENT, 0 ms] (766) QDP (767) QReductionProof [EQUIVALENT, 0 ms] (768) QDP (769) TransformationProof [EQUIVALENT, 0 ms] (770) QDP (771) TransformationProof [EQUIVALENT, 0 ms] (772) QDP (773) TransformationProof [EQUIVALENT, 0 ms] (774) QDP (775) TransformationProof [EQUIVALENT, 0 ms] (776) QDP (777) TransformationProof [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) DependencyGraphProof [EQUIVALENT, 0 ms] (788) QDP (789) TransformationProof [EQUIVALENT, 0 ms] (790) QDP (791) TransformationProof [EQUIVALENT, 0 ms] (792) QDP (793) TransformationProof [EQUIVALENT, 0 ms] (794) QDP (795) TransformationProof [EQUIVALENT, 0 ms] (796) QDP (797) TransformationProof [EQUIVALENT, 0 ms] (798) QDP (799) TransformationProof [EQUIVALENT, 0 ms] (800) QDP (801) TransformationProof [EQUIVALENT, 0 ms] (802) QDP (803) TransformationProof [EQUIVALENT, 0 ms] (804) QDP (805) TransformationProof [EQUIVALENT, 0 ms] (806) QDP (807) TransformationProof [EQUIVALENT, 0 ms] (808) QDP (809) TransformationProof [EQUIVALENT, 0 ms] (810) QDP (811) DependencyGraphProof [EQUIVALENT, 0 ms] (812) QDP (813) TransformationProof [EQUIVALENT, 0 ms] (814) QDP (815) DependencyGraphProof [EQUIVALENT, 0 ms] (816) AND (817) QDP (818) TransformationProof [EQUIVALENT, 0 ms] (819) QDP (820) TransformationProof [EQUIVALENT, 0 ms] (821) QDP (822) TransformationProof [EQUIVALENT, 0 ms] (823) QDP (824) TransformationProof [EQUIVALENT, 0 ms] (825) QDP (826) TransformationProof [EQUIVALENT, 0 ms] (827) QDP (828) TransformationProof [EQUIVALENT, 0 ms] (829) QDP (830) DependencyGraphProof [EQUIVALENT, 0 ms] (831) QDP (832) QDPOrderProof [EQUIVALENT, 589 ms] (833) QDP (834) DependencyGraphProof [EQUIVALENT, 0 ms] (835) TRUE (836) QDP (837) TransformationProof [EQUIVALENT, 0 ms] (838) QDP (839) DependencyGraphProof [EQUIVALENT, 0 ms] (840) AND (841) QDP (842) TransformationProof [EQUIVALENT, 0 ms] (843) QDP (844) TransformationProof [EQUIVALENT, 0 ms] (845) QDP (846) TransformationProof [EQUIVALENT, 0 ms] (847) QDP (848) TransformationProof [EQUIVALENT, 0 ms] (849) QDP (850) QDPOrderProof [EQUIVALENT, 695 ms] (851) QDP (852) DependencyGraphProof [EQUIVALENT, 0 ms] (853) TRUE (854) QDP (855) InductionCalculusProof [EQUIVALENT, 0 ms] (856) QDP (857) QDP (858) UsableRulesProof [EQUIVALENT, 0 ms] (859) QDP (860) QReductionProof [EQUIVALENT, 0 ms] (861) QDP (862) TransformationProof [EQUIVALENT, 0 ms] (863) QDP (864) DependencyGraphProof [EQUIVALENT, 0 ms] (865) QDP (866) TransformationProof [EQUIVALENT, 0 ms] (867) QDP (868) TransformationProof [EQUIVALENT, 0 ms] (869) QDP (870) DependencyGraphProof [EQUIVALENT, 0 ms] (871) QDP (872) TransformationProof [EQUIVALENT, 0 ms] (873) QDP (874) DependencyGraphProof [EQUIVALENT, 0 ms] (875) AND (876) QDP (877) UsableRulesProof [EQUIVALENT, 0 ms] (878) QDP (879) QReductionProof [EQUIVALENT, 0 ms] (880) QDP (881) TransformationProof [EQUIVALENT, 0 ms] (882) QDP (883) TransformationProof [EQUIVALENT, 0 ms] (884) QDP (885) TransformationProof [EQUIVALENT, 0 ms] (886) QDP (887) TransformationProof [EQUIVALENT, 0 ms] (888) QDP (889) DependencyGraphProof [EQUIVALENT, 0 ms] (890) QDP (891) TransformationProof [EQUIVALENT, 0 ms] (892) QDP (893) TransformationProof [EQUIVALENT, 0 ms] (894) QDP (895) DependencyGraphProof [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) DependencyGraphProof [EQUIVALENT, 0 ms] (904) QDP (905) TransformationProof [EQUIVALENT, 0 ms] (906) QDP (907) TransformationProof [EQUIVALENT, 0 ms] (908) QDP (909) DependencyGraphProof [EQUIVALENT, 0 ms] (910) QDP (911) TransformationProof [EQUIVALENT, 0 ms] (912) QDP (913) QDPSizeChangeProof [EQUIVALENT, 0 ms] (914) YES (915) QDP (916) UsableRulesProof [EQUIVALENT, 0 ms] (917) QDP (918) QReductionProof [EQUIVALENT, 0 ms] (919) QDP (920) TransformationProof [EQUIVALENT, 0 ms] (921) QDP (922) TransformationProof [EQUIVALENT, 0 ms] (923) QDP (924) TransformationProof [EQUIVALENT, 0 ms] (925) QDP (926) TransformationProof [EQUIVALENT, 0 ms] (927) QDP (928) TransformationProof [EQUIVALENT, 0 ms] (929) QDP (930) TransformationProof [EQUIVALENT, 0 ms] (931) QDP (932) TransformationProof [EQUIVALENT, 0 ms] (933) QDP (934) TransformationProof [EQUIVALENT, 0 ms] (935) QDP (936) TransformationProof [EQUIVALENT, 0 ms] (937) QDP (938) DependencyGraphProof [EQUIVALENT, 0 ms] (939) QDP (940) TransformationProof [EQUIVALENT, 0 ms] (941) QDP (942) TransformationProof [EQUIVALENT, 0 ms] (943) QDP (944) TransformationProof [EQUIVALENT, 0 ms] (945) QDP (946) TransformationProof [EQUIVALENT, 0 ms] (947) QDP (948) TransformationProof [EQUIVALENT, 0 ms] (949) QDP (950) TransformationProof [EQUIVALENT, 0 ms] (951) QDP (952) TransformationProof [EQUIVALENT, 0 ms] (953) QDP (954) TransformationProof [EQUIVALENT, 0 ms] (955) QDP (956) TransformationProof [EQUIVALENT, 0 ms] (957) QDP (958) TransformationProof [EQUIVALENT, 0 ms] (959) QDP (960) TransformationProof [EQUIVALENT, 0 ms] (961) QDP (962) DependencyGraphProof [EQUIVALENT, 0 ms] (963) QDP (964) TransformationProof [EQUIVALENT, 0 ms] (965) QDP (966) DependencyGraphProof [EQUIVALENT, 0 ms] (967) AND (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) TransformationProof [EQUIVALENT, 0 ms] (978) QDP (979) TransformationProof [EQUIVALENT, 0 ms] (980) QDP (981) DependencyGraphProof [EQUIVALENT, 0 ms] (982) QDP (983) QDPOrderProof [EQUIVALENT, 590 ms] (984) QDP (985) DependencyGraphProof [EQUIVALENT, 0 ms] (986) TRUE (987) QDP (988) TransformationProof [EQUIVALENT, 0 ms] (989) QDP (990) DependencyGraphProof [EQUIVALENT, 0 ms] (991) AND (992) QDP (993) TransformationProof [EQUIVALENT, 0 ms] (994) QDP (995) TransformationProof [EQUIVALENT, 0 ms] (996) QDP (997) TransformationProof [EQUIVALENT, 0 ms] (998) QDP (999) TransformationProof [EQUIVALENT, 0 ms] (1000) QDP (1001) QDPOrderProof [EQUIVALENT, 686 ms] (1002) QDP (1003) DependencyGraphProof [EQUIVALENT, 0 ms] (1004) TRUE (1005) QDP (1006) QReductionProof [EQUIVALENT, 0 ms] (1007) QDP (1008) InductionCalculusProof [EQUIVALENT, 0 ms] (1009) QDP (1010) QDP (1011) UsableRulesProof [EQUIVALENT, 0 ms] (1012) QDP (1013) QReductionProof [EQUIVALENT, 0 ms] (1014) QDP (1015) TransformationProof [EQUIVALENT, 0 ms] (1016) QDP (1017) DependencyGraphProof [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) DependencyGraphProof [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) DependencyGraphProof [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) TransformationProof [EQUIVALENT, 0 ms] (1044) QDP (1045) DependencyGraphProof [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) DependencyGraphProof [EQUIVALENT, 0 ms] (1062) QDP (1063) TransformationProof [EQUIVALENT, 0 ms] (1064) QDP (1065) DependencyGraphProof [EQUIVALENT, 0 ms] (1066) AND (1067) QDP (1068) UsableRulesProof [EQUIVALENT, 0 ms] (1069) QDP (1070) QReductionProof [EQUIVALENT, 0 ms] (1071) QDP (1072) TransformationProof [EQUIVALENT, 0 ms] (1073) QDP (1074) TransformationProof [EQUIVALENT, 0 ms] (1075) QDP (1076) DependencyGraphProof [EQUIVALENT, 0 ms] (1077) QDP (1078) TransformationProof [EQUIVALENT, 0 ms] (1079) QDP (1080) TransformationProof [EQUIVALENT, 0 ms] (1081) QDP (1082) DependencyGraphProof [EQUIVALENT, 0 ms] (1083) QDP (1084) TransformationProof [EQUIVALENT, 0 ms] (1085) QDP (1086) TransformationProof [EQUIVALENT, 0 ms] (1087) QDP (1088) TransformationProof [EQUIVALENT, 0 ms] (1089) QDP (1090) DependencyGraphProof [EQUIVALENT, 0 ms] (1091) QDP (1092) TransformationProof [EQUIVALENT, 0 ms] (1093) QDP (1094) TransformationProof [EQUIVALENT, 0 ms] (1095) QDP (1096) DependencyGraphProof [EQUIVALENT, 0 ms] (1097) QDP (1098) TransformationProof [EQUIVALENT, 0 ms] (1099) QDP (1100) QDPSizeChangeProof [EQUIVALENT, 14 ms] (1101) YES (1102) QDP (1103) UsableRulesProof [EQUIVALENT, 0 ms] (1104) QDP (1105) QReductionProof [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) DependencyGraphProof [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) DependencyGraphProof [EQUIVALENT, 0 ms] (1128) QDP (1129) TransformationProof [EQUIVALENT, 0 ms] (1130) QDP (1131) DependencyGraphProof [EQUIVALENT, 0 ms] (1132) QDP (1133) TransformationProof [EQUIVALENT, 0 ms] (1134) QDP (1135) TransformationProof [EQUIVALENT, 0 ms] (1136) QDP (1137) DependencyGraphProof [EQUIVALENT, 0 ms] (1138) QDP (1139) TransformationProof [EQUIVALENT, 0 ms] (1140) QDP (1141) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1142) YES (1143) QDP (1144) UsableRulesProof [EQUIVALENT, 0 ms] (1145) QDP (1146) QReductionProof [EQUIVALENT, 0 ms] (1147) QDP (1148) TransformationProof [EQUIVALENT, 0 ms] (1149) QDP (1150) TransformationProof [EQUIVALENT, 0 ms] (1151) QDP (1152) TransformationProof [EQUIVALENT, 0 ms] (1153) QDP (1154) TransformationProof [EQUIVALENT, 0 ms] (1155) QDP (1156) TransformationProof [EQUIVALENT, 0 ms] (1157) QDP (1158) TransformationProof [EQUIVALENT, 0 ms] (1159) QDP (1160) TransformationProof [EQUIVALENT, 0 ms] (1161) QDP (1162) TransformationProof [EQUIVALENT, 0 ms] (1163) QDP (1164) TransformationProof [EQUIVALENT, 0 ms] (1165) QDP (1166) DependencyGraphProof [EQUIVALENT, 0 ms] (1167) QDP (1168) TransformationProof [EQUIVALENT, 0 ms] (1169) QDP (1170) TransformationProof [EQUIVALENT, 0 ms] (1171) QDP (1172) TransformationProof [EQUIVALENT, 0 ms] (1173) QDP (1174) TransformationProof [EQUIVALENT, 0 ms] (1175) QDP (1176) TransformationProof [EQUIVALENT, 0 ms] (1177) QDP (1178) TransformationProof [EQUIVALENT, 0 ms] (1179) QDP (1180) TransformationProof [EQUIVALENT, 0 ms] (1181) QDP (1182) DependencyGraphProof [EQUIVALENT, 0 ms] (1183) QDP (1184) TransformationProof [EQUIVALENT, 0 ms] (1185) QDP (1186) DependencyGraphProof [EQUIVALENT, 0 ms] (1187) QDP (1188) TransformationProof [EQUIVALENT, 0 ms] (1189) QDP (1190) TransformationProof [EQUIVALENT, 0 ms] (1191) QDP (1192) TransformationProof [EQUIVALENT, 0 ms] (1193) QDP (1194) TransformationProof [EQUIVALENT, 0 ms] (1195) QDP (1196) TransformationProof [EQUIVALENT, 0 ms] (1197) QDP (1198) DependencyGraphProof [EQUIVALENT, 0 ms] (1199) QDP (1200) TransformationProof [EQUIVALENT, 0 ms] (1201) QDP (1202) DependencyGraphProof [EQUIVALENT, 0 ms] (1203) QDP (1204) TransformationProof [EQUIVALENT, 0 ms] (1205) QDP (1206) DependencyGraphProof [EQUIVALENT, 0 ms] (1207) AND (1208) QDP (1209) UsableRulesProof [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) DependencyGraphProof [EQUIVALENT, 0 ms] (1220) QDP (1221) TransformationProof [EQUIVALENT, 0 ms] (1222) QDP (1223) DependencyGraphProof [EQUIVALENT, 0 ms] (1224) QDP (1225) InductionCalculusProof [EQUIVALENT, 0 ms] (1226) QDP (1227) QDP (1228) UsableRulesProof [EQUIVALENT, 0 ms] (1229) QDP (1230) TransformationProof [EQUIVALENT, 0 ms] (1231) QDP (1232) UsableRulesProof [EQUIVALENT, 0 ms] (1233) QDP (1234) QDPOrderProof [EQUIVALENT, 796 ms] (1235) QDP (1236) DependencyGraphProof [EQUIVALENT, 0 ms] (1237) TRUE (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) TransformationProof [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) DependencyGraphProof [EQUIVALENT, 0 ms] (1262) QDP (1263) TransformationProof [EQUIVALENT, 0 ms] (1264) QDP (1265) DependencyGraphProof [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) DependencyGraphProof [EQUIVALENT, 0 ms] (1280) AND (1281) QDP (1282) UsableRulesProof [EQUIVALENT, 0 ms] (1283) QDP (1284) TransformationProof [EQUIVALENT, 0 ms] (1285) QDP (1286) TransformationProof [EQUIVALENT, 0 ms] (1287) QDP (1288) TransformationProof [EQUIVALENT, 0 ms] (1289) QDP (1290) TransformationProof [EQUIVALENT, 0 ms] (1291) QDP (1292) InductionCalculusProof [EQUIVALENT, 0 ms] (1293) QDP (1294) QDP (1295) UsableRulesProof [EQUIVALENT, 0 ms] (1296) QDP (1297) QDPOrderProof [EQUIVALENT, 1283 ms] (1298) QDP (1299) DependencyGraphProof [EQUIVALENT, 0 ms] (1300) TRUE (1301) QDP (1302) InductionCalculusProof [EQUIVALENT, 0 ms] (1303) QDP (1304) QDP (1305) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1306) YES (1307) QDP (1308) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1309) YES (1310) Narrow [COMPLETE, 0 ms] (1311) QDP (1312) PisEmptyProof [EQUIVALENT, 0 ms] (1313) YES ---------------------------------------- (0) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (1) IFR (EQUIVALENT) If Reductions: The following If expression "if primGEqNatS x y then Succ (primDivNatS (primMinusNatS x y) (Succ y)) else Zero" is transformed to "primDivNatS0 x y True = Succ (primDivNatS (primMinusNatS x y) (Succ y)); primDivNatS0 x y False = Zero; " The following If expression "if primGEqNatS x y then primModNatS (primMinusNatS x y) (Succ y) else Succ x" is transformed to "primModNatS0 x y True = primModNatS (primMinusNatS x y) (Succ y); primModNatS0 x y False = Succ x; " ---------------------------------------- (2) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (3) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (4) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (5) COR (EQUIVALENT) Cond Reductions: The following Function with conditions "absReal x|x >= 0x|otherwise`negate` x; " is transformed to "absReal x = absReal2 x; " "absReal1 x True = x; absReal1 x False = absReal0 x otherwise; " "absReal0 x True = `negate` x; " "absReal2 x = absReal1 x (x >= 0); " The following Function with conditions "gcd' x 0 = x; gcd' x y = gcd' y (x `rem` y); " is transformed to "gcd' x xz = gcd'2 x xz; gcd' x y = gcd'0 x y; " "gcd'0 x y = gcd' y (x `rem` y); " "gcd'1 True x xz = x; gcd'1 yu yv yw = gcd'0 yv yw; " "gcd'2 x xz = gcd'1 (xz == 0) x xz; gcd'2 yx yy = gcd'0 yx yy; " The following Function with conditions "gcd 0 0 = error []; gcd x y = gcd' (abs x) (abs y) where { gcd' x 0 = x; gcd' x y = gcd' y (x `rem` y); } ; " is transformed to "gcd yz zu = gcd3 yz zu; gcd x y = gcd0 x y; " "gcd0 x y = gcd' (abs x) (abs y) where { gcd' x xz = gcd'2 x xz; gcd' x y = gcd'0 x y; ; gcd'0 x y = gcd' y (x `rem` y); ; gcd'1 True x xz = x; gcd'1 yu yv yw = gcd'0 yv yw; ; gcd'2 x xz = gcd'1 (xz == 0) x xz; gcd'2 yx yy = gcd'0 yx yy; } ; " "gcd1 True yz zu = error []; gcd1 zv zw zx = gcd0 zw zx; " "gcd2 True yz zu = gcd1 (zu == 0) yz zu; gcd2 zy zz vuu = gcd0 zz vuu; " "gcd3 yz zu = gcd2 (yz == 0) yz zu; gcd3 vuv vuw = gcd0 vuv vuw; " The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " The following Function with conditions "reduce x y|y == 0error []|otherwisex `quot` d :% (y `quot` d) where { d = gcd x y; } ; " is transformed to "reduce x y = reduce2 x y; " "reduce2 x y = reduce1 x y (y == 0) where { d = gcd x y; ; reduce0 x y True = x `quot` d :% (y `quot` d); ; reduce1 x y True = error []; reduce1 x y False = reduce0 x y otherwise; } ; " The following Function with conditions "signumReal x|x == 00|x > 01|otherwise-1; " is transformed to "signumReal x = signumReal3 x; " "signumReal0 x True = -1; " "signumReal2 x True = 0; signumReal2 x False = signumReal1 x (x > 0); " "signumReal1 x True = 1; signumReal1 x False = signumReal0 x otherwise; " "signumReal3 x = signumReal2 x (x == 0); " ---------------------------------------- (6) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (7) LetRed (EQUIVALENT) Let/Where Reductions: The bindings of the following Let/Where expression "gcd' (abs x) (abs y) where { gcd' x xz = gcd'2 x xz; gcd' x y = gcd'0 x y; ; gcd'0 x y = gcd' y (x `rem` y); ; gcd'1 True x xz = x; gcd'1 yu yv yw = gcd'0 yv yw; ; gcd'2 x xz = gcd'1 (xz == 0) x xz; gcd'2 yx yy = gcd'0 yx yy; } " are unpacked to the following functions on top level "gcd0Gcd'2 x xz = gcd0Gcd'1 (xz == 0) x xz; gcd0Gcd'2 yx yy = gcd0Gcd'0 yx yy; " "gcd0Gcd'1 True x xz = x; gcd0Gcd'1 yu yv yw = gcd0Gcd'0 yv yw; " "gcd0Gcd' x xz = gcd0Gcd'2 x xz; gcd0Gcd' x y = gcd0Gcd'0 x y; " "gcd0Gcd'0 x y = gcd0Gcd' y (x `rem` y); " The bindings of the following Let/Where expression "reduce1 x y (y == 0) where { d = gcd x y; ; reduce0 x y True = x `quot` d :% (y `quot` d); ; reduce1 x y True = error []; reduce1 x y False = reduce0 x y otherwise; } " are unpacked to the following functions on top level "reduce2Reduce0 vux vuy x y True = x `quot` reduce2D vux vuy :% (y `quot` reduce2D vux vuy); " "reduce2D vux vuy = gcd vux vuy; " "reduce2Reduce1 vux vuy x y True = error []; reduce2Reduce1 vux vuy x y False = reduce2Reduce0 vux vuy x y otherwise; " ---------------------------------------- (8) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (9) NumRed (SOUND) Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. ---------------------------------------- (10) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (11) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="(/)",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="(/) vuz3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="(/) vuz3 vuz4",fontsize=16,color="blue",shape="box"];5345[label="/ :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];4 -> 5345[label="",style="solid", color="blue", weight=9]; 5345 -> 5[label="",style="solid", color="blue", weight=3]; 5346[label="/ :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];4 -> 5346[label="",style="solid", color="blue", weight=9]; 5346 -> 6[label="",style="solid", color="blue", weight=3]; 5347[label="/ :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];4 -> 5347[label="",style="solid", color="blue", weight=9]; 5347 -> 7[label="",style="solid", color="blue", weight=3]; 5[label="(/) vuz3 vuz4",fontsize=16,color="black",shape="box"];5 -> 8[label="",style="solid", color="black", weight=3]; 6[label="(/) vuz3 vuz4",fontsize=16,color="black",shape="box"];6 -> 9[label="",style="solid", color="black", weight=3]; 7[label="(/) vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];5348[label="vuz3/vuz30 :% vuz31",fontsize=10,color="white",style="solid",shape="box"];7 -> 5348[label="",style="solid", color="burlywood", weight=9]; 5348 -> 10[label="",style="solid", color="burlywood", weight=3]; 8[label="primDivDouble vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];5349[label="vuz3/Double vuz30 vuz31",fontsize=10,color="white",style="solid",shape="box"];8 -> 5349[label="",style="solid", color="burlywood", weight=9]; 5349 -> 11[label="",style="solid", color="burlywood", weight=3]; 9[label="primDivFloat vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];5350[label="vuz3/Float vuz30 vuz31",fontsize=10,color="white",style="solid",shape="box"];9 -> 5350[label="",style="solid", color="burlywood", weight=9]; 5350 -> 12[label="",style="solid", color="burlywood", weight=3]; 10[label="(/) (vuz30 :% vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];5351[label="vuz4/vuz40 :% vuz41",fontsize=10,color="white",style="solid",shape="box"];10 -> 5351[label="",style="solid", color="burlywood", weight=9]; 5351 -> 13[label="",style="solid", color="burlywood", weight=3]; 11[label="primDivDouble (Double vuz30 vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];5352[label="vuz4/Double vuz40 vuz41",fontsize=10,color="white",style="solid",shape="box"];11 -> 5352[label="",style="solid", color="burlywood", weight=9]; 5352 -> 14[label="",style="solid", color="burlywood", weight=3]; 12[label="primDivFloat (Float vuz30 vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];5353[label="vuz4/Float vuz40 vuz41",fontsize=10,color="white",style="solid",shape="box"];12 -> 5353[label="",style="solid", color="burlywood", weight=9]; 5353 -> 15[label="",style="solid", color="burlywood", weight=3]; 13[label="(/) (vuz30 :% vuz31) (vuz40 :% vuz41)",fontsize=16,color="black",shape="box"];13 -> 16[label="",style="solid", color="black", weight=3]; 14[label="primDivDouble (Double vuz30 vuz31) (Double vuz40 vuz41)",fontsize=16,color="black",shape="box"];14 -> 17[label="",style="solid", color="black", weight=3]; 15[label="primDivFloat (Float vuz30 vuz31) (Float vuz40 vuz41)",fontsize=16,color="black",shape="box"];15 -> 18[label="",style="solid", color="black", weight=3]; 16[label="vuz30 * vuz41 % (vuz31 * vuz40)",fontsize=16,color="black",shape="box"];16 -> 19[label="",style="solid", color="black", weight=3]; 17[label="Double (vuz30 * vuz41) (vuz31 * vuz40)",fontsize=16,color="green",shape="box"];17 -> 20[label="",style="dashed", color="green", weight=3]; 17 -> 21[label="",style="dashed", color="green", weight=3]; 18[label="Float (vuz30 * vuz41) (vuz31 * vuz40)",fontsize=16,color="green",shape="box"];18 -> 22[label="",style="dashed", color="green", weight=3]; 18 -> 23[label="",style="dashed", color="green", weight=3]; 19[label="reduce (vuz30 * vuz41 * signum (vuz31 * vuz40)) (abs (vuz31 * vuz40))",fontsize=16,color="black",shape="box"];19 -> 24[label="",style="solid", color="black", weight=3]; 20[label="vuz30 * vuz41",fontsize=16,color="black",shape="triangle"];20 -> 25[label="",style="solid", color="black", weight=3]; 21 -> 20[label="",style="dashed", color="red", weight=0]; 21[label="vuz31 * vuz40",fontsize=16,color="magenta"];21 -> 26[label="",style="dashed", color="magenta", weight=3]; 21 -> 27[label="",style="dashed", color="magenta", weight=3]; 22 -> 20[label="",style="dashed", color="red", weight=0]; 22[label="vuz30 * vuz41",fontsize=16,color="magenta"];22 -> 28[label="",style="dashed", color="magenta", weight=3]; 22 -> 29[label="",style="dashed", color="magenta", weight=3]; 23 -> 20[label="",style="dashed", color="red", weight=0]; 23[label="vuz31 * vuz40",fontsize=16,color="magenta"];23 -> 30[label="",style="dashed", color="magenta", weight=3]; 23 -> 31[label="",style="dashed", color="magenta", weight=3]; 24[label="reduce2 (vuz30 * vuz41 * signum (vuz31 * vuz40)) (abs (vuz31 * vuz40))",fontsize=16,color="black",shape="box"];24 -> 32[label="",style="solid", color="black", weight=3]; 25[label="primMulInt vuz30 vuz41",fontsize=16,color="burlywood",shape="triangle"];5354[label="vuz30/Pos vuz300",fontsize=10,color="white",style="solid",shape="box"];25 -> 5354[label="",style="solid", color="burlywood", weight=9]; 5354 -> 33[label="",style="solid", color="burlywood", weight=3]; 5355[label="vuz30/Neg vuz300",fontsize=10,color="white",style="solid",shape="box"];25 -> 5355[label="",style="solid", color="burlywood", weight=9]; 5355 -> 34[label="",style="solid", color="burlywood", weight=3]; 26[label="vuz40",fontsize=16,color="green",shape="box"];27[label="vuz31",fontsize=16,color="green",shape="box"];28[label="vuz41",fontsize=16,color="green",shape="box"];29[label="vuz30",fontsize=16,color="green",shape="box"];30[label="vuz40",fontsize=16,color="green",shape="box"];31[label="vuz31",fontsize=16,color="green",shape="box"];32 -> 35[label="",style="dashed", color="red", weight=0]; 32[label="reduce2Reduce1 (vuz30 * vuz41 * signum (vuz31 * vuz40)) (abs (vuz31 * vuz40)) (vuz30 * vuz41 * signum (vuz31 * vuz40)) (abs (vuz31 * vuz40)) (abs (vuz31 * vuz40) == fromInt (Pos Zero))",fontsize=16,color="magenta"];32 -> 36[label="",style="dashed", color="magenta", weight=3]; 32 -> 37[label="",style="dashed", color="magenta", weight=3]; 32 -> 38[label="",style="dashed", color="magenta", weight=3]; 32 -> 39[label="",style="dashed", color="magenta", weight=3]; 32 -> 40[label="",style="dashed", color="magenta", weight=3]; 33[label="primMulInt (Pos vuz300) vuz41",fontsize=16,color="burlywood",shape="box"];5356[label="vuz41/Pos vuz410",fontsize=10,color="white",style="solid",shape="box"];33 -> 5356[label="",style="solid", color="burlywood", weight=9]; 5356 -> 41[label="",style="solid", color="burlywood", weight=3]; 5357[label="vuz41/Neg vuz410",fontsize=10,color="white",style="solid",shape="box"];33 -> 5357[label="",style="solid", color="burlywood", weight=9]; 5357 -> 42[label="",style="solid", color="burlywood", weight=3]; 34[label="primMulInt (Neg vuz300) vuz41",fontsize=16,color="burlywood",shape="box"];5358[label="vuz41/Pos vuz410",fontsize=10,color="white",style="solid",shape="box"];34 -> 5358[label="",style="solid", color="burlywood", weight=9]; 5358 -> 43[label="",style="solid", color="burlywood", weight=3]; 5359[label="vuz41/Neg vuz410",fontsize=10,color="white",style="solid",shape="box"];34 -> 5359[label="",style="solid", color="burlywood", weight=9]; 5359 -> 44[label="",style="solid", color="burlywood", weight=3]; 36[label="vuz30",fontsize=16,color="green",shape="box"];37[label="vuz41",fontsize=16,color="green",shape="box"];38[label="vuz40",fontsize=16,color="green",shape="box"];39[label="abs (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];5360[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];39 -> 5360[label="",style="solid", color="blue", weight=9]; 5360 -> 45[label="",style="solid", color="blue", weight=3]; 5361[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];39 -> 5361[label="",style="solid", color="blue", weight=9]; 5361 -> 46[label="",style="solid", color="blue", weight=3]; 40[label="vuz31",fontsize=16,color="green",shape="box"];35[label="reduce2Reduce1 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) vuz15",fontsize=16,color="burlywood",shape="triangle"];5362[label="vuz15/False",fontsize=10,color="white",style="solid",shape="box"];35 -> 5362[label="",style="solid", color="burlywood", weight=9]; 5362 -> 47[label="",style="solid", color="burlywood", weight=3]; 5363[label="vuz15/True",fontsize=10,color="white",style="solid",shape="box"];35 -> 5363[label="",style="solid", color="burlywood", weight=9]; 5363 -> 48[label="",style="solid", color="burlywood", weight=3]; 41[label="primMulInt (Pos vuz300) (Pos vuz410)",fontsize=16,color="black",shape="box"];41 -> 49[label="",style="solid", color="black", weight=3]; 42[label="primMulInt (Pos vuz300) (Neg vuz410)",fontsize=16,color="black",shape="box"];42 -> 50[label="",style="solid", color="black", weight=3]; 43[label="primMulInt (Neg vuz300) (Pos vuz410)",fontsize=16,color="black",shape="box"];43 -> 51[label="",style="solid", color="black", weight=3]; 44[label="primMulInt (Neg vuz300) (Neg vuz410)",fontsize=16,color="black",shape="box"];44 -> 52[label="",style="solid", color="black", weight=3]; 45[label="abs (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];45 -> 53[label="",style="solid", color="black", weight=3]; 46 -> 1690[label="",style="dashed", color="red", weight=0]; 46[label="abs (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="magenta"];46 -> 1691[label="",style="dashed", color="magenta", weight=3]; 46 -> 1692[label="",style="dashed", color="magenta", weight=3]; 47[label="reduce2Reduce1 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) False",fontsize=16,color="black",shape="box"];47 -> 56[label="",style="solid", color="black", weight=3]; 48[label="reduce2Reduce1 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) True",fontsize=16,color="black",shape="box"];48 -> 57[label="",style="solid", color="black", weight=3]; 49[label="Pos (primMulNat vuz300 vuz410)",fontsize=16,color="green",shape="box"];49 -> 58[label="",style="dashed", color="green", weight=3]; 50[label="Neg (primMulNat vuz300 vuz410)",fontsize=16,color="green",shape="box"];50 -> 59[label="",style="dashed", color="green", weight=3]; 51[label="Neg (primMulNat vuz300 vuz410)",fontsize=16,color="green",shape="box"];51 -> 60[label="",style="dashed", color="green", weight=3]; 52[label="Pos (primMulNat vuz300 vuz410)",fontsize=16,color="green",shape="box"];52 -> 61[label="",style="dashed", color="green", weight=3]; 53[label="absReal (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];53 -> 62[label="",style="solid", color="black", weight=3]; 1691 -> 338[label="",style="dashed", color="red", weight=0]; 1691[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1692 -> 123[label="",style="dashed", color="red", weight=0]; 1692[label="abs (vuz31 * vuz40)",fontsize=16,color="magenta"];1692 -> 1698[label="",style="dashed", color="magenta", weight=3]; 1690[label="vuz101 == vuz100",fontsize=16,color="black",shape="triangle"];1690 -> 1699[label="",style="solid", color="black", weight=3]; 56[label="reduce2Reduce0 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) otherwise",fontsize=16,color="black",shape="box"];56 -> 66[label="",style="solid", color="black", weight=3]; 57[label="error []",fontsize=16,color="black",shape="box"];57 -> 67[label="",style="solid", color="black", weight=3]; 58[label="primMulNat vuz300 vuz410",fontsize=16,color="burlywood",shape="triangle"];5364[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];58 -> 5364[label="",style="solid", color="burlywood", weight=9]; 5364 -> 68[label="",style="solid", color="burlywood", weight=3]; 5365[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];58 -> 5365[label="",style="solid", color="burlywood", weight=9]; 5365 -> 69[label="",style="solid", color="burlywood", weight=3]; 59 -> 58[label="",style="dashed", color="red", weight=0]; 59[label="primMulNat vuz300 vuz410",fontsize=16,color="magenta"];59 -> 70[label="",style="dashed", color="magenta", weight=3]; 60 -> 58[label="",style="dashed", color="red", weight=0]; 60[label="primMulNat vuz300 vuz410",fontsize=16,color="magenta"];60 -> 71[label="",style="dashed", color="magenta", weight=3]; 61 -> 58[label="",style="dashed", color="red", weight=0]; 61[label="primMulNat vuz300 vuz410",fontsize=16,color="magenta"];61 -> 72[label="",style="dashed", color="magenta", weight=3]; 61 -> 73[label="",style="dashed", color="magenta", weight=3]; 62[label="absReal2 (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];62 -> 74[label="",style="solid", color="black", weight=3]; 338[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];338 -> 375[label="",style="solid", color="black", weight=3]; 1698 -> 20[label="",style="dashed", color="red", weight=0]; 1698[label="vuz31 * vuz40",fontsize=16,color="magenta"];1698 -> 1742[label="",style="dashed", color="magenta", weight=3]; 1698 -> 1743[label="",style="dashed", color="magenta", weight=3]; 123[label="abs vuz25",fontsize=16,color="black",shape="triangle"];123 -> 148[label="",style="solid", color="black", weight=3]; 1699[label="primEqInt vuz101 vuz100",fontsize=16,color="burlywood",shape="triangle"];5366[label="vuz101/Pos vuz1010",fontsize=10,color="white",style="solid",shape="box"];1699 -> 5366[label="",style="solid", color="burlywood", weight=9]; 5366 -> 1744[label="",style="solid", color="burlywood", weight=3]; 5367[label="vuz101/Neg vuz1010",fontsize=10,color="white",style="solid",shape="box"];1699 -> 5367[label="",style="solid", color="burlywood", weight=9]; 5367 -> 1745[label="",style="solid", color="burlywood", weight=3]; 66[label="reduce2Reduce0 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) True",fontsize=16,color="black",shape="box"];66 -> 76[label="",style="solid", color="black", weight=3]; 67[label="error []",fontsize=16,color="red",shape="box"];68[label="primMulNat (Succ vuz3000) vuz410",fontsize=16,color="burlywood",shape="box"];5368[label="vuz410/Succ vuz4100",fontsize=10,color="white",style="solid",shape="box"];68 -> 5368[label="",style="solid", color="burlywood", weight=9]; 5368 -> 77[label="",style="solid", color="burlywood", weight=3]; 5369[label="vuz410/Zero",fontsize=10,color="white",style="solid",shape="box"];68 -> 5369[label="",style="solid", color="burlywood", weight=9]; 5369 -> 78[label="",style="solid", color="burlywood", weight=3]; 69[label="primMulNat Zero vuz410",fontsize=16,color="burlywood",shape="box"];5370[label="vuz410/Succ vuz4100",fontsize=10,color="white",style="solid",shape="box"];69 -> 5370[label="",style="solid", color="burlywood", weight=9]; 5370 -> 79[label="",style="solid", color="burlywood", weight=3]; 5371[label="vuz410/Zero",fontsize=10,color="white",style="solid",shape="box"];69 -> 5371[label="",style="solid", color="burlywood", weight=9]; 5371 -> 80[label="",style="solid", color="burlywood", weight=3]; 70[label="vuz410",fontsize=16,color="green",shape="box"];71[label="vuz300",fontsize=16,color="green",shape="box"];72[label="vuz300",fontsize=16,color="green",shape="box"];73[label="vuz410",fontsize=16,color="green",shape="box"];74[label="absReal1 (vuz31 * vuz40) (vuz31 * vuz40 >= fromInt (Pos Zero)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];74 -> 81[label="",style="solid", color="black", weight=3]; 375[label="Pos Zero",fontsize=16,color="green",shape="box"];1742[label="vuz40",fontsize=16,color="green",shape="box"];1743[label="vuz31",fontsize=16,color="green",shape="box"];148[label="absReal vuz25",fontsize=16,color="black",shape="box"];148 -> 169[label="",style="solid", color="black", weight=3]; 1744[label="primEqInt (Pos vuz1010) vuz100",fontsize=16,color="burlywood",shape="box"];5372[label="vuz1010/Succ vuz10100",fontsize=10,color="white",style="solid",shape="box"];1744 -> 5372[label="",style="solid", color="burlywood", weight=9]; 5372 -> 1814[label="",style="solid", color="burlywood", weight=3]; 5373[label="vuz1010/Zero",fontsize=10,color="white",style="solid",shape="box"];1744 -> 5373[label="",style="solid", color="burlywood", weight=9]; 5373 -> 1815[label="",style="solid", color="burlywood", weight=3]; 1745[label="primEqInt (Neg vuz1010) vuz100",fontsize=16,color="burlywood",shape="box"];5374[label="vuz1010/Succ vuz10100",fontsize=10,color="white",style="solid",shape="box"];1745 -> 5374[label="",style="solid", color="burlywood", weight=9]; 5374 -> 1816[label="",style="solid", color="burlywood", weight=3]; 5375[label="vuz1010/Zero",fontsize=10,color="white",style="solid",shape="box"];1745 -> 5375[label="",style="solid", color="burlywood", weight=9]; 5375 -> 1817[label="",style="solid", color="burlywood", weight=3]; 76[label="vuz11 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) :% (abs (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)))",fontsize=16,color="green",shape="box"];76 -> 83[label="",style="dashed", color="green", weight=3]; 76 -> 84[label="",style="dashed", color="green", weight=3]; 77[label="primMulNat (Succ vuz3000) (Succ vuz4100)",fontsize=16,color="black",shape="box"];77 -> 85[label="",style="solid", color="black", weight=3]; 78[label="primMulNat (Succ vuz3000) Zero",fontsize=16,color="black",shape="box"];78 -> 86[label="",style="solid", color="black", weight=3]; 79[label="primMulNat Zero (Succ vuz4100)",fontsize=16,color="black",shape="box"];79 -> 87[label="",style="solid", color="black", weight=3]; 80[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];80 -> 88[label="",style="solid", color="black", weight=3]; 81[label="absReal1 (vuz31 * vuz40) (compare (vuz31 * vuz40) (fromInt (Pos Zero)) /= LT) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];81 -> 89[label="",style="solid", color="black", weight=3]; 169[label="absReal2 vuz25",fontsize=16,color="black",shape="box"];169 -> 190[label="",style="solid", color="black", weight=3]; 1814[label="primEqInt (Pos (Succ vuz10100)) vuz100",fontsize=16,color="burlywood",shape="box"];5376[label="vuz100/Pos vuz1000",fontsize=10,color="white",style="solid",shape="box"];1814 -> 5376[label="",style="solid", color="burlywood", weight=9]; 5376 -> 1879[label="",style="solid", color="burlywood", weight=3]; 5377[label="vuz100/Neg vuz1000",fontsize=10,color="white",style="solid",shape="box"];1814 -> 5377[label="",style="solid", color="burlywood", weight=9]; 5377 -> 1880[label="",style="solid", color="burlywood", weight=3]; 1815[label="primEqInt (Pos Zero) vuz100",fontsize=16,color="burlywood",shape="box"];5378[label="vuz100/Pos vuz1000",fontsize=10,color="white",style="solid",shape="box"];1815 -> 5378[label="",style="solid", color="burlywood", weight=9]; 5378 -> 1881[label="",style="solid", color="burlywood", weight=3]; 5379[label="vuz100/Neg vuz1000",fontsize=10,color="white",style="solid",shape="box"];1815 -> 5379[label="",style="solid", color="burlywood", weight=9]; 5379 -> 1882[label="",style="solid", color="burlywood", weight=3]; 1816[label="primEqInt (Neg (Succ vuz10100)) vuz100",fontsize=16,color="burlywood",shape="box"];5380[label="vuz100/Pos vuz1000",fontsize=10,color="white",style="solid",shape="box"];1816 -> 5380[label="",style="solid", color="burlywood", weight=9]; 5380 -> 1883[label="",style="solid", color="burlywood", weight=3]; 5381[label="vuz100/Neg vuz1000",fontsize=10,color="white",style="solid",shape="box"];1816 -> 5381[label="",style="solid", color="burlywood", weight=9]; 5381 -> 1884[label="",style="solid", color="burlywood", weight=3]; 1817[label="primEqInt (Neg Zero) vuz100",fontsize=16,color="burlywood",shape="box"];5382[label="vuz100/Pos vuz1000",fontsize=10,color="white",style="solid",shape="box"];1817 -> 5382[label="",style="solid", color="burlywood", weight=9]; 5382 -> 1885[label="",style="solid", color="burlywood", weight=3]; 5383[label="vuz100/Neg vuz1000",fontsize=10,color="white",style="solid",shape="box"];1817 -> 5383[label="",style="solid", color="burlywood", weight=9]; 5383 -> 1886[label="",style="solid", color="burlywood", weight=3]; 83[label="vuz11 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="blue",shape="box"];5384[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];83 -> 5384[label="",style="solid", color="blue", weight=9]; 5384 -> 91[label="",style="solid", color="blue", weight=3]; 5385[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];83 -> 5385[label="",style="solid", color="blue", weight=9]; 5385 -> 92[label="",style="solid", color="blue", weight=3]; 84[label="abs (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="blue",shape="box"];5386[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];84 -> 5386[label="",style="solid", color="blue", weight=9]; 5386 -> 93[label="",style="solid", color="blue", weight=3]; 5387[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];84 -> 5387[label="",style="solid", color="blue", weight=9]; 5387 -> 94[label="",style="solid", color="blue", weight=3]; 85 -> 95[label="",style="dashed", color="red", weight=0]; 85[label="primPlusNat (primMulNat vuz3000 (Succ vuz4100)) (Succ vuz4100)",fontsize=16,color="magenta"];85 -> 96[label="",style="dashed", color="magenta", weight=3]; 86[label="Zero",fontsize=16,color="green",shape="box"];87[label="Zero",fontsize=16,color="green",shape="box"];88[label="Zero",fontsize=16,color="green",shape="box"];89[label="absReal1 (vuz31 * vuz40) (not (compare (vuz31 * vuz40) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5388[label="vuz31/Integer vuz310",fontsize=10,color="white",style="solid",shape="box"];89 -> 5388[label="",style="solid", color="burlywood", weight=9]; 5388 -> 97[label="",style="solid", color="burlywood", weight=3]; 190[label="absReal1 vuz25 (vuz25 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];190 -> 205[label="",style="solid", color="black", weight=3]; 1879[label="primEqInt (Pos (Succ vuz10100)) (Pos vuz1000)",fontsize=16,color="burlywood",shape="box"];5389[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1879 -> 5389[label="",style="solid", color="burlywood", weight=9]; 5389 -> 1952[label="",style="solid", color="burlywood", weight=3]; 5390[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1879 -> 5390[label="",style="solid", color="burlywood", weight=9]; 5390 -> 1953[label="",style="solid", color="burlywood", weight=3]; 1880[label="primEqInt (Pos (Succ vuz10100)) (Neg vuz1000)",fontsize=16,color="black",shape="box"];1880 -> 1954[label="",style="solid", color="black", weight=3]; 1881[label="primEqInt (Pos Zero) (Pos vuz1000)",fontsize=16,color="burlywood",shape="box"];5391[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1881 -> 5391[label="",style="solid", color="burlywood", weight=9]; 5391 -> 1955[label="",style="solid", color="burlywood", weight=3]; 5392[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1881 -> 5392[label="",style="solid", color="burlywood", weight=9]; 5392 -> 1956[label="",style="solid", color="burlywood", weight=3]; 1882[label="primEqInt (Pos Zero) (Neg vuz1000)",fontsize=16,color="burlywood",shape="box"];5393[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1882 -> 5393[label="",style="solid", color="burlywood", weight=9]; 5393 -> 1957[label="",style="solid", color="burlywood", weight=3]; 5394[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1882 -> 5394[label="",style="solid", color="burlywood", weight=9]; 5394 -> 1958[label="",style="solid", color="burlywood", weight=3]; 1883[label="primEqInt (Neg (Succ vuz10100)) (Pos vuz1000)",fontsize=16,color="black",shape="box"];1883 -> 1959[label="",style="solid", color="black", weight=3]; 1884[label="primEqInt (Neg (Succ vuz10100)) (Neg vuz1000)",fontsize=16,color="burlywood",shape="box"];5395[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1884 -> 5395[label="",style="solid", color="burlywood", weight=9]; 5395 -> 1960[label="",style="solid", color="burlywood", weight=3]; 5396[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1884 -> 5396[label="",style="solid", color="burlywood", weight=9]; 5396 -> 1961[label="",style="solid", color="burlywood", weight=3]; 1885[label="primEqInt (Neg Zero) (Pos vuz1000)",fontsize=16,color="burlywood",shape="box"];5397[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1885 -> 5397[label="",style="solid", color="burlywood", weight=9]; 5397 -> 1962[label="",style="solid", color="burlywood", weight=3]; 5398[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1885 -> 5398[label="",style="solid", color="burlywood", weight=9]; 5398 -> 1963[label="",style="solid", color="burlywood", weight=3]; 1886[label="primEqInt (Neg Zero) (Neg vuz1000)",fontsize=16,color="burlywood",shape="box"];5399[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1886 -> 5399[label="",style="solid", color="burlywood", weight=9]; 5399 -> 1964[label="",style="solid", color="burlywood", weight=3]; 5400[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1886 -> 5400[label="",style="solid", color="burlywood", weight=9]; 5400 -> 1965[label="",style="solid", color="burlywood", weight=3]; 91 -> 99[label="",style="dashed", color="red", weight=0]; 91[label="vuz11 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="magenta"];91 -> 100[label="",style="dashed", color="magenta", weight=3]; 91 -> 101[label="",style="dashed", color="magenta", weight=3]; 91 -> 102[label="",style="dashed", color="magenta", weight=3]; 92[label="vuz11 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="burlywood",shape="box"];5401[label="vuz11/Integer vuz110",fontsize=10,color="white",style="solid",shape="box"];92 -> 5401[label="",style="solid", color="burlywood", weight=9]; 5401 -> 106[label="",style="solid", color="burlywood", weight=3]; 93 -> 99[label="",style="dashed", color="red", weight=0]; 93[label="abs (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="magenta"];93 -> 103[label="",style="dashed", color="magenta", weight=3]; 93 -> 104[label="",style="dashed", color="magenta", weight=3]; 93 -> 105[label="",style="dashed", color="magenta", weight=3]; 94[label="abs (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];94 -> 107[label="",style="solid", color="black", weight=3]; 96 -> 58[label="",style="dashed", color="red", weight=0]; 96[label="primMulNat vuz3000 (Succ vuz4100)",fontsize=16,color="magenta"];96 -> 108[label="",style="dashed", color="magenta", weight=3]; 96 -> 109[label="",style="dashed", color="magenta", weight=3]; 95[label="primPlusNat vuz17 (Succ vuz4100)",fontsize=16,color="burlywood",shape="triangle"];5402[label="vuz17/Succ vuz170",fontsize=10,color="white",style="solid",shape="box"];95 -> 5402[label="",style="solid", color="burlywood", weight=9]; 5402 -> 110[label="",style="solid", color="burlywood", weight=3]; 5403[label="vuz17/Zero",fontsize=10,color="white",style="solid",shape="box"];95 -> 5403[label="",style="solid", color="burlywood", weight=9]; 5403 -> 111[label="",style="solid", color="burlywood", weight=3]; 97[label="absReal1 (Integer vuz310 * vuz40) (not (compare (Integer vuz310 * vuz40) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5404[label="vuz40/Integer vuz400",fontsize=10,color="white",style="solid",shape="box"];97 -> 5404[label="",style="solid", color="burlywood", weight=9]; 5404 -> 112[label="",style="solid", color="burlywood", weight=3]; 205[label="absReal1 vuz25 (compare vuz25 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];205 -> 221[label="",style="solid", color="black", weight=3]; 1952[label="primEqInt (Pos (Succ vuz10100)) (Pos (Succ vuz10000))",fontsize=16,color="black",shape="box"];1952 -> 1975[label="",style="solid", color="black", weight=3]; 1953[label="primEqInt (Pos (Succ vuz10100)) (Pos Zero)",fontsize=16,color="black",shape="box"];1953 -> 1976[label="",style="solid", color="black", weight=3]; 1954[label="False",fontsize=16,color="green",shape="box"];1955[label="primEqInt (Pos Zero) (Pos (Succ vuz10000))",fontsize=16,color="black",shape="box"];1955 -> 1977[label="",style="solid", color="black", weight=3]; 1956[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];1956 -> 1978[label="",style="solid", color="black", weight=3]; 1957[label="primEqInt (Pos Zero) (Neg (Succ vuz10000))",fontsize=16,color="black",shape="box"];1957 -> 1979[label="",style="solid", color="black", weight=3]; 1958[label="primEqInt (Pos Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];1958 -> 1980[label="",style="solid", color="black", weight=3]; 1959[label="False",fontsize=16,color="green",shape="box"];1960[label="primEqInt (Neg (Succ vuz10100)) (Neg (Succ vuz10000))",fontsize=16,color="black",shape="box"];1960 -> 1981[label="",style="solid", color="black", weight=3]; 1961[label="primEqInt (Neg (Succ vuz10100)) (Neg Zero)",fontsize=16,color="black",shape="box"];1961 -> 1982[label="",style="solid", color="black", weight=3]; 1962[label="primEqInt (Neg Zero) (Pos (Succ vuz10000))",fontsize=16,color="black",shape="box"];1962 -> 1983[label="",style="solid", color="black", weight=3]; 1963[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];1963 -> 1984[label="",style="solid", color="black", weight=3]; 1964[label="primEqInt (Neg Zero) (Neg (Succ vuz10000))",fontsize=16,color="black",shape="box"];1964 -> 1985[label="",style="solid", color="black", weight=3]; 1965[label="primEqInt (Neg Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];1965 -> 1986[label="",style="solid", color="black", weight=3]; 100 -> 20[label="",style="dashed", color="red", weight=0]; 100[label="vuz11 * vuz12 * signum (vuz13 * vuz14)",fontsize=16,color="magenta"];100 -> 114[label="",style="dashed", color="magenta", weight=3]; 100 -> 115[label="",style="dashed", color="magenta", weight=3]; 101 -> 20[label="",style="dashed", color="red", weight=0]; 101[label="vuz11 * vuz12 * signum (vuz13 * vuz14)",fontsize=16,color="magenta"];101 -> 116[label="",style="dashed", color="magenta", weight=3]; 101 -> 117[label="",style="dashed", color="magenta", weight=3]; 102 -> 20[label="",style="dashed", color="red", weight=0]; 102[label="vuz13 * vuz14",fontsize=16,color="magenta"];102 -> 118[label="",style="dashed", color="magenta", weight=3]; 102 -> 119[label="",style="dashed", color="magenta", weight=3]; 99[label="vuz18 `quot` reduce2D vuz19 (abs vuz21)",fontsize=16,color="black",shape="triangle"];99 -> 120[label="",style="solid", color="black", weight=3]; 106[label="Integer vuz110 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (Integer vuz110 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="burlywood",shape="box"];5405[label="vuz12/Integer vuz120",fontsize=10,color="white",style="solid",shape="box"];106 -> 5405[label="",style="solid", color="burlywood", weight=9]; 5405 -> 125[label="",style="solid", color="burlywood", weight=3]; 103 -> 20[label="",style="dashed", color="red", weight=0]; 103[label="vuz11 * vuz12 * signum (vuz13 * vuz14)",fontsize=16,color="magenta"];103 -> 121[label="",style="dashed", color="magenta", weight=3]; 103 -> 122[label="",style="dashed", color="magenta", weight=3]; 104 -> 123[label="",style="dashed", color="red", weight=0]; 104[label="abs (vuz13 * vuz14)",fontsize=16,color="magenta"];104 -> 124[label="",style="dashed", color="magenta", weight=3]; 105 -> 20[label="",style="dashed", color="red", weight=0]; 105[label="vuz13 * vuz14",fontsize=16,color="magenta"];105 -> 126[label="",style="dashed", color="magenta", weight=3]; 105 -> 127[label="",style="dashed", color="magenta", weight=3]; 107[label="absReal (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];107 -> 128[label="",style="solid", color="black", weight=3]; 108[label="vuz3000",fontsize=16,color="green",shape="box"];109[label="Succ vuz4100",fontsize=16,color="green",shape="box"];110[label="primPlusNat (Succ vuz170) (Succ vuz4100)",fontsize=16,color="black",shape="box"];110 -> 129[label="",style="solid", color="black", weight=3]; 111[label="primPlusNat Zero (Succ vuz4100)",fontsize=16,color="black",shape="box"];111 -> 130[label="",style="solid", color="black", weight=3]; 112[label="absReal1 (Integer vuz310 * Integer vuz400) (not (compare (Integer vuz310 * Integer vuz400) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];112 -> 131[label="",style="solid", color="black", weight=3]; 221[label="absReal1 vuz25 (not (compare vuz25 (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];221 -> 237[label="",style="solid", color="black", weight=3]; 1975 -> 547[label="",style="dashed", color="red", weight=0]; 1975[label="primEqNat vuz10100 vuz10000",fontsize=16,color="magenta"];1975 -> 2006[label="",style="dashed", color="magenta", weight=3]; 1975 -> 2007[label="",style="dashed", color="magenta", weight=3]; 1976[label="False",fontsize=16,color="green",shape="box"];1977[label="False",fontsize=16,color="green",shape="box"];1978[label="True",fontsize=16,color="green",shape="box"];1979[label="False",fontsize=16,color="green",shape="box"];1980[label="True",fontsize=16,color="green",shape="box"];1981 -> 547[label="",style="dashed", color="red", weight=0]; 1981[label="primEqNat vuz10100 vuz10000",fontsize=16,color="magenta"];1981 -> 2008[label="",style="dashed", color="magenta", weight=3]; 1981 -> 2009[label="",style="dashed", color="magenta", weight=3]; 1982[label="False",fontsize=16,color="green",shape="box"];1983[label="False",fontsize=16,color="green",shape="box"];1984[label="True",fontsize=16,color="green",shape="box"];1985[label="False",fontsize=16,color="green",shape="box"];1986[label="True",fontsize=16,color="green",shape="box"];114 -> 133[label="",style="dashed", color="red", weight=0]; 114[label="signum (vuz13 * vuz14)",fontsize=16,color="magenta"];114 -> 134[label="",style="dashed", color="magenta", weight=3]; 115 -> 20[label="",style="dashed", color="red", weight=0]; 115[label="vuz11 * vuz12",fontsize=16,color="magenta"];115 -> 137[label="",style="dashed", color="magenta", weight=3]; 115 -> 138[label="",style="dashed", color="magenta", weight=3]; 116 -> 133[label="",style="dashed", color="red", weight=0]; 116[label="signum (vuz13 * vuz14)",fontsize=16,color="magenta"];116 -> 135[label="",style="dashed", color="magenta", weight=3]; 117 -> 20[label="",style="dashed", color="red", weight=0]; 117[label="vuz11 * vuz12",fontsize=16,color="magenta"];117 -> 139[label="",style="dashed", color="magenta", weight=3]; 117 -> 140[label="",style="dashed", color="magenta", weight=3]; 118[label="vuz14",fontsize=16,color="green",shape="box"];119[label="vuz13",fontsize=16,color="green",shape="box"];120 -> 141[label="",style="dashed", color="red", weight=0]; 120[label="primQuotInt vuz18 (reduce2D vuz19 (abs vuz21))",fontsize=16,color="magenta"];120 -> 142[label="",style="dashed", color="magenta", weight=3]; 125[label="Integer vuz110 * Integer vuz120 * signum (vuz13 * vuz14) `quot` reduce2D (Integer vuz110 * Integer vuz120 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];125 -> 143[label="",style="solid", color="black", weight=3]; 121 -> 133[label="",style="dashed", color="red", weight=0]; 121[label="signum (vuz13 * vuz14)",fontsize=16,color="magenta"];121 -> 136[label="",style="dashed", color="magenta", weight=3]; 122 -> 20[label="",style="dashed", color="red", weight=0]; 122[label="vuz11 * vuz12",fontsize=16,color="magenta"];122 -> 144[label="",style="dashed", color="magenta", weight=3]; 122 -> 145[label="",style="dashed", color="magenta", weight=3]; 124 -> 20[label="",style="dashed", color="red", weight=0]; 124[label="vuz13 * vuz14",fontsize=16,color="magenta"];124 -> 146[label="",style="dashed", color="magenta", weight=3]; 124 -> 147[label="",style="dashed", color="magenta", weight=3]; 126[label="vuz14",fontsize=16,color="green",shape="box"];127[label="vuz13",fontsize=16,color="green",shape="box"];128[label="absReal2 (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal2 (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];128 -> 149[label="",style="solid", color="black", weight=3]; 129[label="Succ (Succ (primPlusNat vuz170 vuz4100))",fontsize=16,color="green",shape="box"];129 -> 150[label="",style="dashed", color="green", weight=3]; 130[label="Succ vuz4100",fontsize=16,color="green",shape="box"];131 -> 151[label="",style="dashed", color="red", weight=0]; 131[label="absReal1 (Integer (primMulInt vuz310 vuz400)) (not (compare (Integer (primMulInt vuz310 vuz400)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="magenta"];131 -> 152[label="",style="dashed", color="magenta", weight=3]; 131 -> 153[label="",style="dashed", color="magenta", weight=3]; 237[label="absReal1 vuz25 (not (primCmpInt vuz25 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];5406[label="vuz25/Pos vuz250",fontsize=10,color="white",style="solid",shape="box"];237 -> 5406[label="",style="solid", color="burlywood", weight=9]; 5406 -> 258[label="",style="solid", color="burlywood", weight=3]; 5407[label="vuz25/Neg vuz250",fontsize=10,color="white",style="solid",shape="box"];237 -> 5407[label="",style="solid", color="burlywood", weight=9]; 5407 -> 259[label="",style="solid", color="burlywood", weight=3]; 2006[label="vuz10000",fontsize=16,color="green",shape="box"];2007[label="vuz10100",fontsize=16,color="green",shape="box"];547[label="primEqNat vuz1600 vuz4700",fontsize=16,color="burlywood",shape="triangle"];5408[label="vuz1600/Succ vuz16000",fontsize=10,color="white",style="solid",shape="box"];547 -> 5408[label="",style="solid", color="burlywood", weight=9]; 5408 -> 580[label="",style="solid", color="burlywood", weight=3]; 5409[label="vuz1600/Zero",fontsize=10,color="white",style="solid",shape="box"];547 -> 5409[label="",style="solid", color="burlywood", weight=9]; 5409 -> 581[label="",style="solid", color="burlywood", weight=3]; 2008[label="vuz10000",fontsize=16,color="green",shape="box"];2009[label="vuz10100",fontsize=16,color="green",shape="box"];134 -> 20[label="",style="dashed", color="red", weight=0]; 134[label="vuz13 * vuz14",fontsize=16,color="magenta"];134 -> 156[label="",style="dashed", color="magenta", weight=3]; 134 -> 157[label="",style="dashed", color="magenta", weight=3]; 133[label="signum vuz26",fontsize=16,color="black",shape="triangle"];133 -> 158[label="",style="solid", color="black", weight=3]; 137[label="vuz12",fontsize=16,color="green",shape="box"];138[label="vuz11",fontsize=16,color="green",shape="box"];135 -> 20[label="",style="dashed", color="red", weight=0]; 135[label="vuz13 * vuz14",fontsize=16,color="magenta"];135 -> 159[label="",style="dashed", color="magenta", weight=3]; 135 -> 160[label="",style="dashed", color="magenta", weight=3]; 139[label="vuz12",fontsize=16,color="green",shape="box"];140[label="vuz11",fontsize=16,color="green",shape="box"];142 -> 123[label="",style="dashed", color="red", weight=0]; 142[label="abs vuz21",fontsize=16,color="magenta"];142 -> 161[label="",style="dashed", color="magenta", weight=3]; 141[label="primQuotInt vuz18 (reduce2D vuz19 vuz27)",fontsize=16,color="burlywood",shape="triangle"];5410[label="vuz18/Pos vuz180",fontsize=10,color="white",style="solid",shape="box"];141 -> 5410[label="",style="solid", color="burlywood", weight=9]; 5410 -> 162[label="",style="solid", color="burlywood", weight=3]; 5411[label="vuz18/Neg vuz180",fontsize=10,color="white",style="solid",shape="box"];141 -> 5411[label="",style="solid", color="burlywood", weight=9]; 5411 -> 163[label="",style="solid", color="burlywood", weight=3]; 143 -> 164[label="",style="dashed", color="red", weight=0]; 143[label="Integer (primMulInt vuz110 vuz120) * signum (vuz13 * vuz14) `quot` reduce2D (Integer (primMulInt vuz110 vuz120) * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="magenta"];143 -> 165[label="",style="dashed", color="magenta", weight=3]; 143 -> 166[label="",style="dashed", color="magenta", weight=3]; 136 -> 20[label="",style="dashed", color="red", weight=0]; 136[label="vuz13 * vuz14",fontsize=16,color="magenta"];136 -> 167[label="",style="dashed", color="magenta", weight=3]; 136 -> 168[label="",style="dashed", color="magenta", weight=3]; 144[label="vuz12",fontsize=16,color="green",shape="box"];145[label="vuz11",fontsize=16,color="green",shape="box"];146[label="vuz14",fontsize=16,color="green",shape="box"];147[label="vuz13",fontsize=16,color="green",shape="box"];149[label="absReal1 (vuz13 * vuz14) (vuz13 * vuz14 >= fromInt (Pos Zero)) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal1 (vuz13 * vuz14) (vuz13 * vuz14 >= fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];149 -> 170[label="",style="solid", color="black", weight=3]; 150[label="primPlusNat vuz170 vuz4100",fontsize=16,color="burlywood",shape="triangle"];5412[label="vuz170/Succ vuz1700",fontsize=10,color="white",style="solid",shape="box"];150 -> 5412[label="",style="solid", color="burlywood", weight=9]; 5412 -> 171[label="",style="solid", color="burlywood", weight=3]; 5413[label="vuz170/Zero",fontsize=10,color="white",style="solid",shape="box"];150 -> 5413[label="",style="solid", color="burlywood", weight=9]; 5413 -> 172[label="",style="solid", color="burlywood", weight=3]; 152 -> 25[label="",style="dashed", color="red", weight=0]; 152[label="primMulInt vuz310 vuz400",fontsize=16,color="magenta"];152 -> 173[label="",style="dashed", color="magenta", weight=3]; 152 -> 174[label="",style="dashed", color="magenta", weight=3]; 153 -> 25[label="",style="dashed", color="red", weight=0]; 153[label="primMulInt vuz310 vuz400",fontsize=16,color="magenta"];153 -> 175[label="",style="dashed", color="magenta", weight=3]; 153 -> 176[label="",style="dashed", color="magenta", weight=3]; 151[label="absReal1 (Integer vuz28) (not (compare (Integer vuz29) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];151 -> 177[label="",style="solid", color="black", weight=3]; 258[label="absReal1 (Pos vuz250) (not (primCmpInt (Pos vuz250) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];5414[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];258 -> 5414[label="",style="solid", color="burlywood", weight=9]; 5414 -> 286[label="",style="solid", color="burlywood", weight=3]; 5415[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];258 -> 5415[label="",style="solid", color="burlywood", weight=9]; 5415 -> 287[label="",style="solid", color="burlywood", weight=3]; 259[label="absReal1 (Neg vuz250) (not (primCmpInt (Neg vuz250) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];5416[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];259 -> 5416[label="",style="solid", color="burlywood", weight=9]; 5416 -> 288[label="",style="solid", color="burlywood", weight=3]; 5417[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];259 -> 5417[label="",style="solid", color="burlywood", weight=9]; 5417 -> 289[label="",style="solid", color="burlywood", weight=3]; 580[label="primEqNat (Succ vuz16000) vuz4700",fontsize=16,color="burlywood",shape="box"];5418[label="vuz4700/Succ vuz47000",fontsize=10,color="white",style="solid",shape="box"];580 -> 5418[label="",style="solid", color="burlywood", weight=9]; 5418 -> 627[label="",style="solid", color="burlywood", weight=3]; 5419[label="vuz4700/Zero",fontsize=10,color="white",style="solid",shape="box"];580 -> 5419[label="",style="solid", color="burlywood", weight=9]; 5419 -> 628[label="",style="solid", color="burlywood", weight=3]; 581[label="primEqNat Zero vuz4700",fontsize=16,color="burlywood",shape="box"];5420[label="vuz4700/Succ vuz47000",fontsize=10,color="white",style="solid",shape="box"];581 -> 5420[label="",style="solid", color="burlywood", weight=9]; 5420 -> 629[label="",style="solid", color="burlywood", weight=3]; 5421[label="vuz4700/Zero",fontsize=10,color="white",style="solid",shape="box"];581 -> 5421[label="",style="solid", color="burlywood", weight=9]; 5421 -> 630[label="",style="solid", color="burlywood", weight=3]; 156[label="vuz14",fontsize=16,color="green",shape="box"];157[label="vuz13",fontsize=16,color="green",shape="box"];158[label="signumReal vuz26",fontsize=16,color="black",shape="box"];158 -> 182[label="",style="solid", color="black", weight=3]; 159[label="vuz14",fontsize=16,color="green",shape="box"];160[label="vuz13",fontsize=16,color="green",shape="box"];161[label="vuz21",fontsize=16,color="green",shape="box"];162[label="primQuotInt (Pos vuz180) (reduce2D vuz19 vuz27)",fontsize=16,color="black",shape="box"];162 -> 183[label="",style="solid", color="black", weight=3]; 163[label="primQuotInt (Neg vuz180) (reduce2D vuz19 vuz27)",fontsize=16,color="black",shape="box"];163 -> 184[label="",style="solid", color="black", weight=3]; 165 -> 25[label="",style="dashed", color="red", weight=0]; 165[label="primMulInt vuz110 vuz120",fontsize=16,color="magenta"];165 -> 185[label="",style="dashed", color="magenta", weight=3]; 165 -> 186[label="",style="dashed", color="magenta", weight=3]; 166 -> 25[label="",style="dashed", color="red", weight=0]; 166[label="primMulInt vuz110 vuz120",fontsize=16,color="magenta"];166 -> 187[label="",style="dashed", color="magenta", weight=3]; 166 -> 188[label="",style="dashed", color="magenta", weight=3]; 164[label="Integer vuz30 * signum (vuz13 * vuz14) `quot` reduce2D (Integer vuz31 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="triangle"];164 -> 189[label="",style="solid", color="black", weight=3]; 167[label="vuz14",fontsize=16,color="green",shape="box"];168[label="vuz13",fontsize=16,color="green",shape="box"];170[label="absReal1 (vuz13 * vuz14) (compare (vuz13 * vuz14) (fromInt (Pos Zero)) /= LT) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal1 (vuz13 * vuz14) (compare (vuz13 * vuz14) (fromInt (Pos Zero)) /= LT))",fontsize=16,color="black",shape="box"];170 -> 191[label="",style="solid", color="black", weight=3]; 171[label="primPlusNat (Succ vuz1700) vuz4100",fontsize=16,color="burlywood",shape="box"];5422[label="vuz4100/Succ vuz41000",fontsize=10,color="white",style="solid",shape="box"];171 -> 5422[label="",style="solid", color="burlywood", weight=9]; 5422 -> 192[label="",style="solid", color="burlywood", weight=3]; 5423[label="vuz4100/Zero",fontsize=10,color="white",style="solid",shape="box"];171 -> 5423[label="",style="solid", color="burlywood", weight=9]; 5423 -> 193[label="",style="solid", color="burlywood", weight=3]; 172[label="primPlusNat Zero vuz4100",fontsize=16,color="burlywood",shape="box"];5424[label="vuz4100/Succ vuz41000",fontsize=10,color="white",style="solid",shape="box"];172 -> 5424[label="",style="solid", color="burlywood", weight=9]; 5424 -> 194[label="",style="solid", color="burlywood", weight=3]; 5425[label="vuz4100/Zero",fontsize=10,color="white",style="solid",shape="box"];172 -> 5425[label="",style="solid", color="burlywood", weight=9]; 5425 -> 195[label="",style="solid", color="burlywood", weight=3]; 173[label="vuz400",fontsize=16,color="green",shape="box"];174[label="vuz310",fontsize=16,color="green",shape="box"];175[label="vuz400",fontsize=16,color="green",shape="box"];176[label="vuz310",fontsize=16,color="green",shape="box"];177[label="absReal1 (Integer vuz28) (not (compare (Integer vuz29) (Integer (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];177 -> 196[label="",style="solid", color="black", weight=3]; 286[label="absReal1 (Pos (Succ vuz2500)) (not (primCmpInt (Pos (Succ vuz2500)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];286 -> 326[label="",style="solid", color="black", weight=3]; 287[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];287 -> 327[label="",style="solid", color="black", weight=3]; 288[label="absReal1 (Neg (Succ vuz2500)) (not (primCmpInt (Neg (Succ vuz2500)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];288 -> 328[label="",style="solid", color="black", weight=3]; 289[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];289 -> 329[label="",style="solid", color="black", weight=3]; 627[label="primEqNat (Succ vuz16000) (Succ vuz47000)",fontsize=16,color="black",shape="box"];627 -> 703[label="",style="solid", color="black", weight=3]; 628[label="primEqNat (Succ vuz16000) Zero",fontsize=16,color="black",shape="box"];628 -> 704[label="",style="solid", color="black", weight=3]; 629[label="primEqNat Zero (Succ vuz47000)",fontsize=16,color="black",shape="box"];629 -> 705[label="",style="solid", color="black", weight=3]; 630[label="primEqNat Zero Zero",fontsize=16,color="black",shape="box"];630 -> 706[label="",style="solid", color="black", weight=3]; 182[label="signumReal3 vuz26",fontsize=16,color="black",shape="box"];182 -> 201[label="",style="solid", color="black", weight=3]; 183[label="primQuotInt (Pos vuz180) (gcd vuz19 vuz27)",fontsize=16,color="black",shape="box"];183 -> 202[label="",style="solid", color="black", weight=3]; 184[label="primQuotInt (Neg vuz180) (gcd vuz19 vuz27)",fontsize=16,color="black",shape="box"];184 -> 203[label="",style="solid", color="black", weight=3]; 185[label="vuz120",fontsize=16,color="green",shape="box"];186[label="vuz110",fontsize=16,color="green",shape="box"];187[label="vuz120",fontsize=16,color="green",shape="box"];188[label="vuz110",fontsize=16,color="green",shape="box"];189[label="Integer vuz30 * signumReal (vuz13 * vuz14) `quot` reduce2D (Integer vuz31 * signumReal (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];189 -> 204[label="",style="solid", color="black", weight=3]; 191[label="absReal1 (vuz13 * vuz14) (not (compare (vuz13 * vuz14) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal1 (vuz13 * vuz14) (not (compare (vuz13 * vuz14) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="burlywood",shape="box"];5426[label="vuz13/Integer vuz130",fontsize=10,color="white",style="solid",shape="box"];191 -> 5426[label="",style="solid", color="burlywood", weight=9]; 5426 -> 206[label="",style="solid", color="burlywood", weight=3]; 192[label="primPlusNat (Succ vuz1700) (Succ vuz41000)",fontsize=16,color="black",shape="box"];192 -> 207[label="",style="solid", color="black", weight=3]; 193[label="primPlusNat (Succ vuz1700) Zero",fontsize=16,color="black",shape="box"];193 -> 208[label="",style="solid", color="black", weight=3]; 194[label="primPlusNat Zero (Succ vuz41000)",fontsize=16,color="black",shape="box"];194 -> 209[label="",style="solid", color="black", weight=3]; 195[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];195 -> 210[label="",style="solid", color="black", weight=3]; 196[label="absReal1 (Integer vuz28) (not (primCmpInt vuz29 (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5427[label="vuz29/Pos vuz290",fontsize=10,color="white",style="solid",shape="box"];196 -> 5427[label="",style="solid", color="burlywood", weight=9]; 5427 -> 211[label="",style="solid", color="burlywood", weight=3]; 5428[label="vuz29/Neg vuz290",fontsize=10,color="white",style="solid",shape="box"];196 -> 5428[label="",style="solid", color="burlywood", weight=9]; 5428 -> 212[label="",style="solid", color="burlywood", weight=3]; 326[label="absReal1 (Pos (Succ vuz2500)) (not (primCmpInt (Pos (Succ vuz2500)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];326 -> 364[label="",style="solid", color="black", weight=3]; 327[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];327 -> 365[label="",style="solid", color="black", weight=3]; 328[label="absReal1 (Neg (Succ vuz2500)) (not (primCmpInt (Neg (Succ vuz2500)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];328 -> 366[label="",style="solid", color="black", weight=3]; 329[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];329 -> 367[label="",style="solid", color="black", weight=3]; 703 -> 547[label="",style="dashed", color="red", weight=0]; 703[label="primEqNat vuz16000 vuz47000",fontsize=16,color="magenta"];703 -> 789[label="",style="dashed", color="magenta", weight=3]; 703 -> 790[label="",style="dashed", color="magenta", weight=3]; 704[label="False",fontsize=16,color="green",shape="box"];705[label="False",fontsize=16,color="green",shape="box"];706[label="True",fontsize=16,color="green",shape="box"];201[label="signumReal2 vuz26 (vuz26 == fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];201 -> 217[label="",style="solid", color="black", weight=3]; 202[label="primQuotInt (Pos vuz180) (gcd3 vuz19 vuz27)",fontsize=16,color="black",shape="box"];202 -> 218[label="",style="solid", color="black", weight=3]; 203[label="primQuotInt (Neg vuz180) (gcd3 vuz19 vuz27)",fontsize=16,color="black",shape="box"];203 -> 219[label="",style="solid", color="black", weight=3]; 204[label="Integer vuz30 * signumReal3 (vuz13 * vuz14) `quot` reduce2D (Integer vuz31 * signumReal3 (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];204 -> 220[label="",style="solid", color="black", weight=3]; 206[label="absReal1 (Integer vuz130 * vuz14) (not (compare (Integer vuz130 * vuz14) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz130 * vuz14)) (absReal1 (Integer vuz130 * vuz14) (not (compare (Integer vuz130 * vuz14) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="burlywood",shape="box"];5429[label="vuz14/Integer vuz140",fontsize=10,color="white",style="solid",shape="box"];206 -> 5429[label="",style="solid", color="burlywood", weight=9]; 5429 -> 222[label="",style="solid", color="burlywood", weight=3]; 207[label="Succ (Succ (primPlusNat vuz1700 vuz41000))",fontsize=16,color="green",shape="box"];207 -> 223[label="",style="dashed", color="green", weight=3]; 208[label="Succ vuz1700",fontsize=16,color="green",shape="box"];209[label="Succ vuz41000",fontsize=16,color="green",shape="box"];210[label="Zero",fontsize=16,color="green",shape="box"];211[label="absReal1 (Integer vuz28) (not (primCmpInt (Pos vuz290) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5430[label="vuz290/Succ vuz2900",fontsize=10,color="white",style="solid",shape="box"];211 -> 5430[label="",style="solid", color="burlywood", weight=9]; 5430 -> 224[label="",style="solid", color="burlywood", weight=3]; 5431[label="vuz290/Zero",fontsize=10,color="white",style="solid",shape="box"];211 -> 5431[label="",style="solid", color="burlywood", weight=9]; 5431 -> 225[label="",style="solid", color="burlywood", weight=3]; 212[label="absReal1 (Integer vuz28) (not (primCmpInt (Neg vuz290) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5432[label="vuz290/Succ vuz2900",fontsize=10,color="white",style="solid",shape="box"];212 -> 5432[label="",style="solid", color="burlywood", weight=9]; 5432 -> 226[label="",style="solid", color="burlywood", weight=3]; 5433[label="vuz290/Zero",fontsize=10,color="white",style="solid",shape="box"];212 -> 5433[label="",style="solid", color="burlywood", weight=9]; 5433 -> 227[label="",style="solid", color="burlywood", weight=3]; 364[label="absReal1 (Pos (Succ vuz2500)) (not (primCmpNat (Succ vuz2500) Zero == LT))",fontsize=16,color="black",shape="box"];364 -> 391[label="",style="solid", color="black", weight=3]; 365[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];365 -> 392[label="",style="solid", color="black", weight=3]; 366[label="absReal1 (Neg (Succ vuz2500)) (not (LT == LT))",fontsize=16,color="black",shape="box"];366 -> 393[label="",style="solid", color="black", weight=3]; 367[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];367 -> 394[label="",style="solid", color="black", weight=3]; 789[label="vuz47000",fontsize=16,color="green",shape="box"];790[label="vuz16000",fontsize=16,color="green",shape="box"];217[label="signumReal2 vuz26 (primEqInt vuz26 (fromInt (Pos Zero)))",fontsize=16,color="burlywood",shape="box"];5434[label="vuz26/Pos vuz260",fontsize=10,color="white",style="solid",shape="box"];217 -> 5434[label="",style="solid", color="burlywood", weight=9]; 5434 -> 232[label="",style="solid", color="burlywood", weight=3]; 5435[label="vuz26/Neg vuz260",fontsize=10,color="white",style="solid",shape="box"];217 -> 5435[label="",style="solid", color="burlywood", weight=9]; 5435 -> 233[label="",style="solid", color="burlywood", weight=3]; 218[label="primQuotInt (Pos vuz180) (gcd2 (vuz19 == fromInt (Pos Zero)) vuz19 vuz27)",fontsize=16,color="black",shape="box"];218 -> 234[label="",style="solid", color="black", weight=3]; 219[label="primQuotInt (Neg vuz180) (gcd2 (vuz19 == fromInt (Pos Zero)) vuz19 vuz27)",fontsize=16,color="black",shape="box"];219 -> 235[label="",style="solid", color="black", weight=3]; 220[label="Integer vuz30 * signumReal2 (vuz13 * vuz14) (vuz13 * vuz14 == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (vuz13 * vuz14) (vuz13 * vuz14 == fromInt (Pos Zero))) (abs (vuz13 * vuz14))",fontsize=16,color="burlywood",shape="box"];5436[label="vuz13/Integer vuz130",fontsize=10,color="white",style="solid",shape="box"];220 -> 5436[label="",style="solid", color="burlywood", weight=9]; 5436 -> 236[label="",style="solid", color="burlywood", weight=3]; 222[label="absReal1 (Integer vuz130 * Integer vuz140) (not (compare (Integer vuz130 * Integer vuz140) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz130 * Integer vuz140)) (absReal1 (Integer vuz130 * Integer vuz140) (not (compare (Integer vuz130 * Integer vuz140) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];222 -> 238[label="",style="solid", color="black", weight=3]; 223 -> 150[label="",style="dashed", color="red", weight=0]; 223[label="primPlusNat vuz1700 vuz41000",fontsize=16,color="magenta"];223 -> 239[label="",style="dashed", color="magenta", weight=3]; 223 -> 240[label="",style="dashed", color="magenta", weight=3]; 224[label="absReal1 (Integer vuz28) (not (primCmpInt (Pos (Succ vuz2900)) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];224 -> 241[label="",style="solid", color="black", weight=3]; 225[label="absReal1 (Integer vuz28) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];225 -> 242[label="",style="solid", color="black", weight=3]; 226[label="absReal1 (Integer vuz28) (not (primCmpInt (Neg (Succ vuz2900)) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];226 -> 243[label="",style="solid", color="black", weight=3]; 227[label="absReal1 (Integer vuz28) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];227 -> 244[label="",style="solid", color="black", weight=3]; 391[label="absReal1 (Pos (Succ vuz2500)) (not (GT == LT))",fontsize=16,color="black",shape="box"];391 -> 420[label="",style="solid", color="black", weight=3]; 392[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="black",shape="box"];392 -> 421[label="",style="solid", color="black", weight=3]; 393[label="absReal1 (Neg (Succ vuz2500)) (not True)",fontsize=16,color="black",shape="box"];393 -> 422[label="",style="solid", color="black", weight=3]; 394[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="black",shape="box"];394 -> 423[label="",style="solid", color="black", weight=3]; 232[label="signumReal2 (Pos vuz260) (primEqInt (Pos vuz260) (fromInt (Pos Zero)))",fontsize=16,color="burlywood",shape="box"];5437[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];232 -> 5437[label="",style="solid", color="burlywood", weight=9]; 5437 -> 249[label="",style="solid", color="burlywood", weight=3]; 5438[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];232 -> 5438[label="",style="solid", color="burlywood", weight=9]; 5438 -> 250[label="",style="solid", color="burlywood", weight=3]; 233[label="signumReal2 (Neg vuz260) (primEqInt (Neg vuz260) (fromInt (Pos Zero)))",fontsize=16,color="burlywood",shape="box"];5439[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];233 -> 5439[label="",style="solid", color="burlywood", weight=9]; 5439 -> 251[label="",style="solid", color="burlywood", weight=3]; 5440[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];233 -> 5440[label="",style="solid", color="burlywood", weight=9]; 5440 -> 252[label="",style="solid", color="burlywood", weight=3]; 234[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt vuz19 (fromInt (Pos Zero))) vuz19 vuz27)",fontsize=16,color="burlywood",shape="box"];5441[label="vuz19/Pos vuz190",fontsize=10,color="white",style="solid",shape="box"];234 -> 5441[label="",style="solid", color="burlywood", weight=9]; 5441 -> 253[label="",style="solid", color="burlywood", weight=3]; 5442[label="vuz19/Neg vuz190",fontsize=10,color="white",style="solid",shape="box"];234 -> 5442[label="",style="solid", color="burlywood", weight=9]; 5442 -> 254[label="",style="solid", color="burlywood", weight=3]; 235[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt vuz19 (fromInt (Pos Zero))) vuz19 vuz27)",fontsize=16,color="burlywood",shape="box"];5443[label="vuz19/Pos vuz190",fontsize=10,color="white",style="solid",shape="box"];235 -> 5443[label="",style="solid", color="burlywood", weight=9]; 5443 -> 255[label="",style="solid", color="burlywood", weight=3]; 5444[label="vuz19/Neg vuz190",fontsize=10,color="white",style="solid",shape="box"];235 -> 5444[label="",style="solid", color="burlywood", weight=9]; 5444 -> 256[label="",style="solid", color="burlywood", weight=3]; 236[label="Integer vuz30 * signumReal2 (Integer vuz130 * vuz14) (Integer vuz130 * vuz14 == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz130 * vuz14) (Integer vuz130 * vuz14 == fromInt (Pos Zero))) (abs (Integer vuz130 * vuz14))",fontsize=16,color="burlywood",shape="box"];5445[label="vuz14/Integer vuz140",fontsize=10,color="white",style="solid",shape="box"];236 -> 5445[label="",style="solid", color="burlywood", weight=9]; 5445 -> 257[label="",style="solid", color="burlywood", weight=3]; 238 -> 260[label="",style="dashed", color="red", weight=0]; 238[label="absReal1 (Integer (primMulInt vuz130 vuz140)) (not (compare (Integer (primMulInt vuz130 vuz140)) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer (primMulInt vuz130 vuz140))) (absReal1 (Integer (primMulInt vuz130 vuz140)) (not (compare (Integer (primMulInt vuz130 vuz140)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="magenta"];238 -> 261[label="",style="dashed", color="magenta", weight=3]; 238 -> 262[label="",style="dashed", color="magenta", weight=3]; 238 -> 263[label="",style="dashed", color="magenta", weight=3]; 238 -> 264[label="",style="dashed", color="magenta", weight=3]; 238 -> 265[label="",style="dashed", color="magenta", weight=3]; 239[label="vuz1700",fontsize=16,color="green",shape="box"];240[label="vuz41000",fontsize=16,color="green",shape="box"];241[label="absReal1 (Integer vuz28) (not (primCmpNat (Succ vuz2900) Zero == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];241 -> 266[label="",style="solid", color="black", weight=3]; 242[label="absReal1 (Integer vuz28) (not (EQ == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];242 -> 267[label="",style="solid", color="black", weight=3]; 243[label="absReal1 (Integer vuz28) (not (LT == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];243 -> 268[label="",style="solid", color="black", weight=3]; 244 -> 242[label="",style="dashed", color="red", weight=0]; 244[label="absReal1 (Integer vuz28) (not (EQ == LT)) == fromInt (Pos Zero)",fontsize=16,color="magenta"];420[label="absReal1 (Pos (Succ vuz2500)) (not False)",fontsize=16,color="black",shape="box"];420 -> 460[label="",style="solid", color="black", weight=3]; 421[label="absReal1 (Pos Zero) True",fontsize=16,color="black",shape="box"];421 -> 461[label="",style="solid", color="black", weight=3]; 422[label="absReal1 (Neg (Succ vuz2500)) False",fontsize=16,color="black",shape="box"];422 -> 462[label="",style="solid", color="black", weight=3]; 423[label="absReal1 (Neg Zero) True",fontsize=16,color="black",shape="box"];423 -> 463[label="",style="solid", color="black", weight=3]; 249[label="signumReal2 (Pos (Succ vuz2600)) (primEqInt (Pos (Succ vuz2600)) (fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];249 -> 273[label="",style="solid", color="black", weight=3]; 250[label="signumReal2 (Pos Zero) (primEqInt (Pos Zero) (fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];250 -> 274[label="",style="solid", color="black", weight=3]; 251[label="signumReal2 (Neg (Succ vuz2600)) (primEqInt (Neg (Succ vuz2600)) (fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];251 -> 275[label="",style="solid", color="black", weight=3]; 252[label="signumReal2 (Neg Zero) (primEqInt (Neg Zero) (fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];252 -> 276[label="",style="solid", color="black", weight=3]; 253[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos vuz190) (fromInt (Pos Zero))) (Pos vuz190) vuz27)",fontsize=16,color="burlywood",shape="box"];5446[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];253 -> 5446[label="",style="solid", color="burlywood", weight=9]; 5446 -> 277[label="",style="solid", color="burlywood", weight=3]; 5447[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];253 -> 5447[label="",style="solid", color="burlywood", weight=9]; 5447 -> 278[label="",style="solid", color="burlywood", weight=3]; 254[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg vuz190) (fromInt (Pos Zero))) (Neg vuz190) vuz27)",fontsize=16,color="burlywood",shape="box"];5448[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];254 -> 5448[label="",style="solid", color="burlywood", weight=9]; 5448 -> 279[label="",style="solid", color="burlywood", weight=3]; 5449[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];254 -> 5449[label="",style="solid", color="burlywood", weight=9]; 5449 -> 280[label="",style="solid", color="burlywood", weight=3]; 255[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos vuz190) (fromInt (Pos Zero))) (Pos vuz190) vuz27)",fontsize=16,color="burlywood",shape="box"];5450[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];255 -> 5450[label="",style="solid", color="burlywood", weight=9]; 5450 -> 281[label="",style="solid", color="burlywood", weight=3]; 5451[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];255 -> 5451[label="",style="solid", color="burlywood", weight=9]; 5451 -> 282[label="",style="solid", color="burlywood", weight=3]; 256[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg vuz190) (fromInt (Pos Zero))) (Neg vuz190) vuz27)",fontsize=16,color="burlywood",shape="box"];5452[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];256 -> 5452[label="",style="solid", color="burlywood", weight=9]; 5452 -> 283[label="",style="solid", color="burlywood", weight=3]; 5453[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];256 -> 5453[label="",style="solid", color="burlywood", weight=9]; 5453 -> 284[label="",style="solid", color="burlywood", weight=3]; 257[label="Integer vuz30 * signumReal2 (Integer vuz130 * Integer vuz140) (Integer vuz130 * Integer vuz140 == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz130 * Integer vuz140) (Integer vuz130 * Integer vuz140 == fromInt (Pos Zero))) (abs (Integer vuz130 * Integer vuz140))",fontsize=16,color="black",shape="box"];257 -> 285[label="",style="solid", color="black", weight=3]; 261 -> 25[label="",style="dashed", color="red", weight=0]; 261[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];261 -> 290[label="",style="dashed", color="magenta", weight=3]; 261 -> 291[label="",style="dashed", color="magenta", weight=3]; 262 -> 25[label="",style="dashed", color="red", weight=0]; 262[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];262 -> 292[label="",style="dashed", color="magenta", weight=3]; 262 -> 293[label="",style="dashed", color="magenta", weight=3]; 263 -> 25[label="",style="dashed", color="red", weight=0]; 263[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];263 -> 294[label="",style="dashed", color="magenta", weight=3]; 263 -> 295[label="",style="dashed", color="magenta", weight=3]; 264 -> 25[label="",style="dashed", color="red", weight=0]; 264[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];264 -> 296[label="",style="dashed", color="magenta", weight=3]; 264 -> 297[label="",style="dashed", color="magenta", weight=3]; 265 -> 25[label="",style="dashed", color="red", weight=0]; 265[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];265 -> 298[label="",style="dashed", color="magenta", weight=3]; 265 -> 299[label="",style="dashed", color="magenta", weight=3]; 260[label="absReal1 (Integer vuz32) (not (compare (Integer vuz35) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (compare (Integer vuz36) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="triangle"];260 -> 300[label="",style="solid", color="black", weight=3]; 266[label="absReal1 (Integer vuz28) (not (GT == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];266 -> 301[label="",style="solid", color="black", weight=3]; 267[label="absReal1 (Integer vuz28) (not False) == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];267 -> 302[label="",style="solid", color="black", weight=3]; 268[label="absReal1 (Integer vuz28) (not True) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];268 -> 303[label="",style="solid", color="black", weight=3]; 460[label="absReal1 (Pos (Succ vuz2500)) True",fontsize=16,color="black",shape="box"];460 -> 504[label="",style="solid", color="black", weight=3]; 461[label="Pos Zero",fontsize=16,color="green",shape="box"];462[label="absReal0 (Neg (Succ vuz2500)) otherwise",fontsize=16,color="black",shape="box"];462 -> 505[label="",style="solid", color="black", weight=3]; 463[label="Neg Zero",fontsize=16,color="green",shape="box"];273[label="signumReal2 (Pos (Succ vuz2600)) (primEqInt (Pos (Succ vuz2600)) (Pos Zero))",fontsize=16,color="black",shape="box"];273 -> 308[label="",style="solid", color="black", weight=3]; 274[label="signumReal2 (Pos Zero) (primEqInt (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];274 -> 309[label="",style="solid", color="black", weight=3]; 275[label="signumReal2 (Neg (Succ vuz2600)) (primEqInt (Neg (Succ vuz2600)) (Pos Zero))",fontsize=16,color="black",shape="box"];275 -> 310[label="",style="solid", color="black", weight=3]; 276[label="signumReal2 (Neg Zero) (primEqInt (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];276 -> 311[label="",style="solid", color="black", weight=3]; 277[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos (Succ vuz1900)) (fromInt (Pos Zero))) (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];277 -> 312[label="",style="solid", color="black", weight=3]; 278[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos Zero) (fromInt (Pos Zero))) (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];278 -> 313[label="",style="solid", color="black", weight=3]; 279[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg (Succ vuz1900)) (fromInt (Pos Zero))) (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];279 -> 314[label="",style="solid", color="black", weight=3]; 280[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg Zero) (fromInt (Pos Zero))) (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];280 -> 315[label="",style="solid", color="black", weight=3]; 281[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos (Succ vuz1900)) (fromInt (Pos Zero))) (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];281 -> 316[label="",style="solid", color="black", weight=3]; 282[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos Zero) (fromInt (Pos Zero))) (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];282 -> 317[label="",style="solid", color="black", weight=3]; 283[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg (Succ vuz1900)) (fromInt (Pos Zero))) (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];283 -> 318[label="",style="solid", color="black", weight=3]; 284[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg Zero) (fromInt (Pos Zero))) (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];284 -> 319[label="",style="solid", color="black", weight=3]; 285 -> 320[label="",style="dashed", color="red", weight=0]; 285[label="Integer vuz30 * signumReal2 (Integer (primMulInt vuz130 vuz140)) (Integer (primMulInt vuz130 vuz140) == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer (primMulInt vuz130 vuz140)) (Integer (primMulInt vuz130 vuz140) == fromInt (Pos Zero))) (abs (Integer (primMulInt vuz130 vuz140)))",fontsize=16,color="magenta"];285 -> 321[label="",style="dashed", color="magenta", weight=3]; 285 -> 322[label="",style="dashed", color="magenta", weight=3]; 285 -> 323[label="",style="dashed", color="magenta", weight=3]; 285 -> 324[label="",style="dashed", color="magenta", weight=3]; 285 -> 325[label="",style="dashed", color="magenta", weight=3]; 290[label="vuz140",fontsize=16,color="green",shape="box"];291[label="vuz130",fontsize=16,color="green",shape="box"];292[label="vuz140",fontsize=16,color="green",shape="box"];293[label="vuz130",fontsize=16,color="green",shape="box"];294[label="vuz140",fontsize=16,color="green",shape="box"];295[label="vuz130",fontsize=16,color="green",shape="box"];296[label="vuz140",fontsize=16,color="green",shape="box"];297[label="vuz130",fontsize=16,color="green",shape="box"];298[label="vuz140",fontsize=16,color="green",shape="box"];299[label="vuz130",fontsize=16,color="green",shape="box"];300[label="absReal1 (Integer vuz32) (not (compare (Integer vuz35) (Integer (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (compare (Integer vuz36) (Integer (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];300 -> 330[label="",style="solid", color="black", weight=3]; 301 -> 267[label="",style="dashed", color="red", weight=0]; 301[label="absReal1 (Integer vuz28) (not False) == fromInt (Pos Zero)",fontsize=16,color="magenta"];302[label="absReal1 (Integer vuz28) True == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];302 -> 331[label="",style="solid", color="black", weight=3]; 303[label="absReal1 (Integer vuz28) False == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];303 -> 332[label="",style="solid", color="black", weight=3]; 504[label="Pos (Succ vuz2500)",fontsize=16,color="green",shape="box"];505[label="absReal0 (Neg (Succ vuz2500)) True",fontsize=16,color="black",shape="box"];505 -> 542[label="",style="solid", color="black", weight=3]; 308[label="signumReal2 (Pos (Succ vuz2600)) False",fontsize=16,color="black",shape="box"];308 -> 337[label="",style="solid", color="black", weight=3]; 309[label="signumReal2 (Pos Zero) True",fontsize=16,color="black",shape="box"];309 -> 338[label="",style="solid", color="black", weight=3]; 310[label="signumReal2 (Neg (Succ vuz2600)) False",fontsize=16,color="black",shape="box"];310 -> 339[label="",style="solid", color="black", weight=3]; 311[label="signumReal2 (Neg Zero) True",fontsize=16,color="black",shape="box"];311 -> 340[label="",style="solid", color="black", weight=3]; 312[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos (Succ vuz1900)) (Pos Zero)) (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];312 -> 341[label="",style="solid", color="black", weight=3]; 313 -> 342[label="",style="dashed", color="red", weight=0]; 313[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos Zero) (Pos Zero)) (Pos Zero) vuz27)",fontsize=16,color="magenta"];313 -> 343[label="",style="dashed", color="magenta", weight=3]; 314[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg (Succ vuz1900)) (Pos Zero)) (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];314 -> 344[label="",style="solid", color="black", weight=3]; 315 -> 345[label="",style="dashed", color="red", weight=0]; 315[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg Zero) (Pos Zero)) (Neg Zero) vuz27)",fontsize=16,color="magenta"];315 -> 346[label="",style="dashed", color="magenta", weight=3]; 316[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos (Succ vuz1900)) (Pos Zero)) (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];316 -> 347[label="",style="solid", color="black", weight=3]; 317 -> 348[label="",style="dashed", color="red", weight=0]; 317[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos Zero) (Pos Zero)) (Pos Zero) vuz27)",fontsize=16,color="magenta"];317 -> 349[label="",style="dashed", color="magenta", weight=3]; 318[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg (Succ vuz1900)) (Pos Zero)) (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];318 -> 350[label="",style="solid", color="black", weight=3]; 319 -> 351[label="",style="dashed", color="red", weight=0]; 319[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg Zero) (Pos Zero)) (Neg Zero) vuz27)",fontsize=16,color="magenta"];319 -> 352[label="",style="dashed", color="magenta", weight=3]; 321 -> 25[label="",style="dashed", color="red", weight=0]; 321[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];321 -> 353[label="",style="dashed", color="magenta", weight=3]; 321 -> 354[label="",style="dashed", color="magenta", weight=3]; 322 -> 25[label="",style="dashed", color="red", weight=0]; 322[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];322 -> 355[label="",style="dashed", color="magenta", weight=3]; 322 -> 356[label="",style="dashed", color="magenta", weight=3]; 323 -> 25[label="",style="dashed", color="red", weight=0]; 323[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];323 -> 357[label="",style="dashed", color="magenta", weight=3]; 323 -> 358[label="",style="dashed", color="magenta", weight=3]; 324 -> 25[label="",style="dashed", color="red", weight=0]; 324[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];324 -> 359[label="",style="dashed", color="magenta", weight=3]; 324 -> 360[label="",style="dashed", color="magenta", weight=3]; 325 -> 25[label="",style="dashed", color="red", weight=0]; 325[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];325 -> 361[label="",style="dashed", color="magenta", weight=3]; 325 -> 362[label="",style="dashed", color="magenta", weight=3]; 320[label="Integer vuz30 * signumReal2 (Integer vuz38) (Integer vuz40 == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (Integer vuz41 == fromInt (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];320 -> 363[label="",style="solid", color="black", weight=3]; 330[label="absReal1 (Integer vuz32) (not (primCmpInt vuz35 (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt vuz35 (Pos Zero) == LT)))",fontsize=16,color="burlywood",shape="box"];5454[label="vuz35/Pos vuz350",fontsize=10,color="white",style="solid",shape="box"];330 -> 5454[label="",style="solid", color="burlywood", weight=9]; 5454 -> 368[label="",style="solid", color="burlywood", weight=3]; 5455[label="vuz35/Neg vuz350",fontsize=10,color="white",style="solid",shape="box"];330 -> 5455[label="",style="solid", color="burlywood", weight=9]; 5455 -> 369[label="",style="solid", color="burlywood", weight=3]; 331[label="Integer vuz28 == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];331 -> 370[label="",style="solid", color="black", weight=3]; 332[label="absReal0 (Integer vuz28) otherwise == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];332 -> 371[label="",style="solid", color="black", weight=3]; 542[label="`negate` Neg (Succ vuz2500)",fontsize=16,color="black",shape="box"];542 -> 577[label="",style="solid", color="black", weight=3]; 337[label="signumReal1 (Pos (Succ vuz2600)) (Pos (Succ vuz2600) > fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];337 -> 374[label="",style="solid", color="black", weight=3]; 339 -> 376[label="",style="dashed", color="red", weight=0]; 339[label="signumReal1 (Neg (Succ vuz2600)) (Neg (Succ vuz2600) > fromInt (Pos Zero))",fontsize=16,color="magenta"];339 -> 377[label="",style="dashed", color="magenta", weight=3]; 340 -> 338[label="",style="dashed", color="red", weight=0]; 340[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];341[label="primQuotInt (Pos vuz180) (gcd2 False (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];341 -> 378[label="",style="solid", color="black", weight=3]; 343 -> 305[label="",style="dashed", color="red", weight=0]; 343[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="magenta"];342[label="primQuotInt (Pos vuz180) (gcd2 vuz42 (Pos Zero) vuz27)",fontsize=16,color="burlywood",shape="triangle"];5456[label="vuz42/False",fontsize=10,color="white",style="solid",shape="box"];342 -> 5456[label="",style="solid", color="burlywood", weight=9]; 5456 -> 379[label="",style="solid", color="burlywood", weight=3]; 5457[label="vuz42/True",fontsize=10,color="white",style="solid",shape="box"];342 -> 5457[label="",style="solid", color="burlywood", weight=9]; 5457 -> 380[label="",style="solid", color="burlywood", weight=3]; 344[label="primQuotInt (Pos vuz180) (gcd2 False (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];344 -> 381[label="",style="solid", color="black", weight=3]; 346 -> 307[label="",style="dashed", color="red", weight=0]; 346[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="magenta"];345[label="primQuotInt (Pos vuz180) (gcd2 vuz43 (Neg Zero) vuz27)",fontsize=16,color="burlywood",shape="triangle"];5458[label="vuz43/False",fontsize=10,color="white",style="solid",shape="box"];345 -> 5458[label="",style="solid", color="burlywood", weight=9]; 5458 -> 382[label="",style="solid", color="burlywood", weight=3]; 5459[label="vuz43/True",fontsize=10,color="white",style="solid",shape="box"];345 -> 5459[label="",style="solid", color="burlywood", weight=9]; 5459 -> 383[label="",style="solid", color="burlywood", weight=3]; 347[label="primQuotInt (Neg vuz180) (gcd2 False (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];347 -> 384[label="",style="solid", color="black", weight=3]; 349 -> 305[label="",style="dashed", color="red", weight=0]; 349[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="magenta"];348[label="primQuotInt (Neg vuz180) (gcd2 vuz44 (Pos Zero) vuz27)",fontsize=16,color="burlywood",shape="triangle"];5460[label="vuz44/False",fontsize=10,color="white",style="solid",shape="box"];348 -> 5460[label="",style="solid", color="burlywood", weight=9]; 5460 -> 385[label="",style="solid", color="burlywood", weight=3]; 5461[label="vuz44/True",fontsize=10,color="white",style="solid",shape="box"];348 -> 5461[label="",style="solid", color="burlywood", weight=9]; 5461 -> 386[label="",style="solid", color="burlywood", weight=3]; 350[label="primQuotInt (Neg vuz180) (gcd2 False (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];350 -> 387[label="",style="solid", color="black", weight=3]; 352 -> 307[label="",style="dashed", color="red", weight=0]; 352[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="magenta"];351[label="primQuotInt (Neg vuz180) (gcd2 vuz45 (Neg Zero) vuz27)",fontsize=16,color="burlywood",shape="triangle"];5462[label="vuz45/False",fontsize=10,color="white",style="solid",shape="box"];351 -> 5462[label="",style="solid", color="burlywood", weight=9]; 5462 -> 388[label="",style="solid", color="burlywood", weight=3]; 5463[label="vuz45/True",fontsize=10,color="white",style="solid",shape="box"];351 -> 5463[label="",style="solid", color="burlywood", weight=9]; 5463 -> 389[label="",style="solid", color="burlywood", weight=3]; 353[label="vuz140",fontsize=16,color="green",shape="box"];354[label="vuz130",fontsize=16,color="green",shape="box"];355[label="vuz140",fontsize=16,color="green",shape="box"];356[label="vuz130",fontsize=16,color="green",shape="box"];357[label="vuz140",fontsize=16,color="green",shape="box"];358[label="vuz130",fontsize=16,color="green",shape="box"];359[label="vuz140",fontsize=16,color="green",shape="box"];360[label="vuz130",fontsize=16,color="green",shape="box"];361[label="vuz140",fontsize=16,color="green",shape="box"];362[label="vuz130",fontsize=16,color="green",shape="box"];363[label="Integer vuz30 * signumReal2 (Integer vuz38) (Integer vuz40 == Integer (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (Integer vuz41 == Integer (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];363 -> 390[label="",style="solid", color="black", weight=3]; 368[label="absReal1 (Integer vuz32) (not (primCmpInt (Pos vuz350) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Pos vuz350) (Pos Zero) == LT)))",fontsize=16,color="burlywood",shape="box"];5464[label="vuz350/Succ vuz3500",fontsize=10,color="white",style="solid",shape="box"];368 -> 5464[label="",style="solid", color="burlywood", weight=9]; 5464 -> 395[label="",style="solid", color="burlywood", weight=3]; 5465[label="vuz350/Zero",fontsize=10,color="white",style="solid",shape="box"];368 -> 5465[label="",style="solid", color="burlywood", weight=9]; 5465 -> 396[label="",style="solid", color="burlywood", weight=3]; 369[label="absReal1 (Integer vuz32) (not (primCmpInt (Neg vuz350) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Neg vuz350) (Pos Zero) == LT)))",fontsize=16,color="burlywood",shape="box"];5466[label="vuz350/Succ vuz3500",fontsize=10,color="white",style="solid",shape="box"];369 -> 5466[label="",style="solid", color="burlywood", weight=9]; 5466 -> 397[label="",style="solid", color="burlywood", weight=3]; 5467[label="vuz350/Zero",fontsize=10,color="white",style="solid",shape="box"];369 -> 5467[label="",style="solid", color="burlywood", weight=9]; 5467 -> 398[label="",style="solid", color="burlywood", weight=3]; 370[label="Integer vuz28 == Integer (Pos Zero)",fontsize=16,color="black",shape="box"];370 -> 399[label="",style="solid", color="black", weight=3]; 371[label="absReal0 (Integer vuz28) True == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];371 -> 400[label="",style="solid", color="black", weight=3]; 577 -> 471[label="",style="dashed", color="red", weight=0]; 577[label="primNegInt (Neg (Succ vuz2500))",fontsize=16,color="magenta"];577 -> 624[label="",style="dashed", color="magenta", weight=3]; 374 -> 403[label="",style="dashed", color="red", weight=0]; 374[label="signumReal1 (Pos (Succ vuz2600)) (compare (Pos (Succ vuz2600)) (fromInt (Pos Zero)) == GT)",fontsize=16,color="magenta"];374 -> 404[label="",style="dashed", color="magenta", weight=3]; 377 -> 338[label="",style="dashed", color="red", weight=0]; 377[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];376[label="signumReal1 (Neg (Succ vuz2600)) (Neg (Succ vuz2600) > vuz46)",fontsize=16,color="black",shape="triangle"];376 -> 405[label="",style="solid", color="black", weight=3]; 378[label="primQuotInt (Pos vuz180) (gcd0 (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];378 -> 406[label="",style="solid", color="black", weight=3]; 305[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="triangle"];305 -> 334[label="",style="solid", color="black", weight=3]; 379[label="primQuotInt (Pos vuz180) (gcd2 False (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];379 -> 407[label="",style="solid", color="black", weight=3]; 380[label="primQuotInt (Pos vuz180) (gcd2 True (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];380 -> 408[label="",style="solid", color="black", weight=3]; 381[label="primQuotInt (Pos vuz180) (gcd0 (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];381 -> 409[label="",style="solid", color="black", weight=3]; 307[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="triangle"];307 -> 336[label="",style="solid", color="black", weight=3]; 382[label="primQuotInt (Pos vuz180) (gcd2 False (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];382 -> 410[label="",style="solid", color="black", weight=3]; 383[label="primQuotInt (Pos vuz180) (gcd2 True (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];383 -> 411[label="",style="solid", color="black", weight=3]; 384[label="primQuotInt (Neg vuz180) (gcd0 (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];384 -> 412[label="",style="solid", color="black", weight=3]; 385[label="primQuotInt (Neg vuz180) (gcd2 False (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];385 -> 413[label="",style="solid", color="black", weight=3]; 386[label="primQuotInt (Neg vuz180) (gcd2 True (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];386 -> 414[label="",style="solid", color="black", weight=3]; 387[label="primQuotInt (Neg vuz180) (gcd0 (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];387 -> 415[label="",style="solid", color="black", weight=3]; 388[label="primQuotInt (Neg vuz180) (gcd2 False (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];388 -> 416[label="",style="solid", color="black", weight=3]; 389[label="primQuotInt (Neg vuz180) (gcd2 True (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];389 -> 417[label="",style="solid", color="black", weight=3]; 390[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt vuz40 (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt vuz40 (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5468[label="vuz40/Pos vuz400",fontsize=10,color="white",style="solid",shape="box"];390 -> 5468[label="",style="solid", color="burlywood", weight=9]; 5468 -> 418[label="",style="solid", color="burlywood", weight=3]; 5469[label="vuz40/Neg vuz400",fontsize=10,color="white",style="solid",shape="box"];390 -> 5469[label="",style="solid", color="burlywood", weight=9]; 5469 -> 419[label="",style="solid", color="burlywood", weight=3]; 395[label="absReal1 (Integer vuz32) (not (primCmpInt (Pos (Succ vuz3500)) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Pos (Succ vuz3500)) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];395 -> 424[label="",style="solid", color="black", weight=3]; 396[label="absReal1 (Integer vuz32) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];396 -> 425[label="",style="solid", color="black", weight=3]; 397[label="absReal1 (Integer vuz32) (not (primCmpInt (Neg (Succ vuz3500)) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Neg (Succ vuz3500)) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];397 -> 426[label="",style="solid", color="black", weight=3]; 398[label="absReal1 (Integer vuz32) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];398 -> 427[label="",style="solid", color="black", weight=3]; 399[label="primEqInt vuz28 (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5470[label="vuz28/Pos vuz280",fontsize=10,color="white",style="solid",shape="box"];399 -> 5470[label="",style="solid", color="burlywood", weight=9]; 5470 -> 428[label="",style="solid", color="burlywood", weight=3]; 5471[label="vuz28/Neg vuz280",fontsize=10,color="white",style="solid",shape="box"];399 -> 5471[label="",style="solid", color="burlywood", weight=9]; 5471 -> 429[label="",style="solid", color="burlywood", weight=3]; 400[label="`negate` Integer vuz28 == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];400 -> 430[label="",style="solid", color="black", weight=3]; 624[label="Neg (Succ vuz2500)",fontsize=16,color="green",shape="box"];471[label="primNegInt vuz28",fontsize=16,color="burlywood",shape="triangle"];5472[label="vuz28/Pos vuz280",fontsize=10,color="white",style="solid",shape="box"];471 -> 5472[label="",style="solid", color="burlywood", weight=9]; 5472 -> 513[label="",style="solid", color="burlywood", weight=3]; 5473[label="vuz28/Neg vuz280",fontsize=10,color="white",style="solid",shape="box"];471 -> 5473[label="",style="solid", color="burlywood", weight=9]; 5473 -> 514[label="",style="solid", color="burlywood", weight=3]; 404 -> 338[label="",style="dashed", color="red", weight=0]; 404[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];403[label="signumReal1 (Pos (Succ vuz2600)) (compare (Pos (Succ vuz2600)) vuz48 == GT)",fontsize=16,color="black",shape="triangle"];403 -> 432[label="",style="solid", color="black", weight=3]; 405[label="signumReal1 (Neg (Succ vuz2600)) (compare (Neg (Succ vuz2600)) vuz46 == GT)",fontsize=16,color="black",shape="box"];405 -> 433[label="",style="solid", color="black", weight=3]; 406 -> 434[label="",style="dashed", color="red", weight=0]; 406[label="primQuotInt (Pos vuz180) (gcd0Gcd' (abs (Pos (Succ vuz1900))) (abs vuz27))",fontsize=16,color="magenta"];406 -> 435[label="",style="dashed", color="magenta", weight=3]; 406 -> 436[label="",style="dashed", color="magenta", weight=3]; 334[label="True",fontsize=16,color="green",shape="box"];407[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) vuz27)",fontsize=16,color="black",shape="triangle"];407 -> 439[label="",style="solid", color="black", weight=3]; 408 -> 440[label="",style="dashed", color="red", weight=0]; 408[label="primQuotInt (Pos vuz180) (gcd1 (vuz27 == fromInt (Pos Zero)) (Pos Zero) vuz27)",fontsize=16,color="magenta"];408 -> 441[label="",style="dashed", color="magenta", weight=3]; 409 -> 434[label="",style="dashed", color="red", weight=0]; 409[label="primQuotInt (Pos vuz180) (gcd0Gcd' (abs (Neg (Succ vuz1900))) (abs vuz27))",fontsize=16,color="magenta"];409 -> 437[label="",style="dashed", color="magenta", weight=3]; 409 -> 438[label="",style="dashed", color="magenta", weight=3]; 336[label="True",fontsize=16,color="green",shape="box"];410[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) vuz27)",fontsize=16,color="black",shape="triangle"];410 -> 442[label="",style="solid", color="black", weight=3]; 411 -> 443[label="",style="dashed", color="red", weight=0]; 411[label="primQuotInt (Pos vuz180) (gcd1 (vuz27 == fromInt (Pos Zero)) (Neg Zero) vuz27)",fontsize=16,color="magenta"];411 -> 444[label="",style="dashed", color="magenta", weight=3]; 412 -> 445[label="",style="dashed", color="red", weight=0]; 412[label="primQuotInt (Neg vuz180) (gcd0Gcd' (abs (Pos (Succ vuz1900))) (abs vuz27))",fontsize=16,color="magenta"];412 -> 446[label="",style="dashed", color="magenta", weight=3]; 412 -> 447[label="",style="dashed", color="magenta", weight=3]; 413[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) vuz27)",fontsize=16,color="black",shape="triangle"];413 -> 450[label="",style="solid", color="black", weight=3]; 414 -> 451[label="",style="dashed", color="red", weight=0]; 414[label="primQuotInt (Neg vuz180) (gcd1 (vuz27 == fromInt (Pos Zero)) (Pos Zero) vuz27)",fontsize=16,color="magenta"];414 -> 452[label="",style="dashed", color="magenta", weight=3]; 415 -> 445[label="",style="dashed", color="red", weight=0]; 415[label="primQuotInt (Neg vuz180) (gcd0Gcd' (abs (Neg (Succ vuz1900))) (abs vuz27))",fontsize=16,color="magenta"];415 -> 448[label="",style="dashed", color="magenta", weight=3]; 415 -> 449[label="",style="dashed", color="magenta", weight=3]; 416[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) vuz27)",fontsize=16,color="black",shape="triangle"];416 -> 453[label="",style="solid", color="black", weight=3]; 417 -> 454[label="",style="dashed", color="red", weight=0]; 417[label="primQuotInt (Neg vuz180) (gcd1 (vuz27 == fromInt (Pos Zero)) (Neg Zero) vuz27)",fontsize=16,color="magenta"];417 -> 455[label="",style="dashed", color="magenta", weight=3]; 418[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Pos vuz400) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Pos vuz400) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5474[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];418 -> 5474[label="",style="solid", color="burlywood", weight=9]; 5474 -> 456[label="",style="solid", color="burlywood", weight=3]; 5475[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];418 -> 5475[label="",style="solid", color="burlywood", weight=9]; 5475 -> 457[label="",style="solid", color="burlywood", weight=3]; 419[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Neg vuz400) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Neg vuz400) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5476[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];419 -> 5476[label="",style="solid", color="burlywood", weight=9]; 5476 -> 458[label="",style="solid", color="burlywood", weight=3]; 5477[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];419 -> 5477[label="",style="solid", color="burlywood", weight=9]; 5477 -> 459[label="",style="solid", color="burlywood", weight=3]; 424[label="absReal1 (Integer vuz32) (not (primCmpNat (Succ vuz3500) Zero == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpNat (Succ vuz3500) Zero == LT)))",fontsize=16,color="black",shape="box"];424 -> 464[label="",style="solid", color="black", weight=3]; 425[label="absReal1 (Integer vuz32) (not (EQ == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (EQ == LT)))",fontsize=16,color="black",shape="triangle"];425 -> 465[label="",style="solid", color="black", weight=3]; 426[label="absReal1 (Integer vuz32) (not (LT == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (LT == LT)))",fontsize=16,color="black",shape="box"];426 -> 466[label="",style="solid", color="black", weight=3]; 427 -> 425[label="",style="dashed", color="red", weight=0]; 427[label="absReal1 (Integer vuz32) (not (EQ == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (EQ == LT)))",fontsize=16,color="magenta"];428[label="primEqInt (Pos vuz280) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5478[label="vuz280/Succ vuz2800",fontsize=10,color="white",style="solid",shape="box"];428 -> 5478[label="",style="solid", color="burlywood", weight=9]; 5478 -> 467[label="",style="solid", color="burlywood", weight=3]; 5479[label="vuz280/Zero",fontsize=10,color="white",style="solid",shape="box"];428 -> 5479[label="",style="solid", color="burlywood", weight=9]; 5479 -> 468[label="",style="solid", color="burlywood", weight=3]; 429[label="primEqInt (Neg vuz280) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5480[label="vuz280/Succ vuz2800",fontsize=10,color="white",style="solid",shape="box"];429 -> 5480[label="",style="solid", color="burlywood", weight=9]; 5480 -> 469[label="",style="solid", color="burlywood", weight=3]; 5481[label="vuz280/Zero",fontsize=10,color="white",style="solid",shape="box"];429 -> 5481[label="",style="solid", color="burlywood", weight=9]; 5481 -> 470[label="",style="solid", color="burlywood", weight=3]; 430 -> 331[label="",style="dashed", color="red", weight=0]; 430[label="Integer (primNegInt vuz28) == fromInt (Pos Zero)",fontsize=16,color="magenta"];430 -> 471[label="",style="dashed", color="magenta", weight=3]; 513[label="primNegInt (Pos vuz280)",fontsize=16,color="black",shape="box"];513 -> 545[label="",style="solid", color="black", weight=3]; 514[label="primNegInt (Neg vuz280)",fontsize=16,color="black",shape="box"];514 -> 546[label="",style="solid", color="black", weight=3]; 432[label="signumReal1 (Pos (Succ vuz2600)) (primCmpInt (Pos (Succ vuz2600)) vuz48 == GT)",fontsize=16,color="burlywood",shape="box"];5482[label="vuz48/Pos vuz480",fontsize=10,color="white",style="solid",shape="box"];432 -> 5482[label="",style="solid", color="burlywood", weight=9]; 5482 -> 474[label="",style="solid", color="burlywood", weight=3]; 5483[label="vuz48/Neg vuz480",fontsize=10,color="white",style="solid",shape="box"];432 -> 5483[label="",style="solid", color="burlywood", weight=9]; 5483 -> 475[label="",style="solid", color="burlywood", weight=3]; 433[label="signumReal1 (Neg (Succ vuz2600)) (primCmpInt (Neg (Succ vuz2600)) vuz46 == GT)",fontsize=16,color="burlywood",shape="box"];5484[label="vuz46/Pos vuz460",fontsize=10,color="white",style="solid",shape="box"];433 -> 5484[label="",style="solid", color="burlywood", weight=9]; 5484 -> 476[label="",style="solid", color="burlywood", weight=3]; 5485[label="vuz46/Neg vuz460",fontsize=10,color="white",style="solid",shape="box"];433 -> 5485[label="",style="solid", color="burlywood", weight=9]; 5485 -> 477[label="",style="solid", color="burlywood", weight=3]; 435 -> 123[label="",style="dashed", color="red", weight=0]; 435[label="abs (Pos (Succ vuz1900))",fontsize=16,color="magenta"];435 -> 478[label="",style="dashed", color="magenta", weight=3]; 436 -> 123[label="",style="dashed", color="red", weight=0]; 436[label="abs vuz27",fontsize=16,color="magenta"];436 -> 479[label="",style="dashed", color="magenta", weight=3]; 434[label="primQuotInt (Pos vuz180) (gcd0Gcd' vuz50 vuz49)",fontsize=16,color="black",shape="triangle"];434 -> 480[label="",style="solid", color="black", weight=3]; 439 -> 434[label="",style="dashed", color="red", weight=0]; 439[label="primQuotInt (Pos vuz180) (gcd0Gcd' (abs (Pos Zero)) (abs vuz27))",fontsize=16,color="magenta"];439 -> 481[label="",style="dashed", color="magenta", weight=3]; 439 -> 482[label="",style="dashed", color="magenta", weight=3]; 441 -> 338[label="",style="dashed", color="red", weight=0]; 441[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];440[label="primQuotInt (Pos vuz180) (gcd1 (vuz27 == vuz51) (Pos Zero) vuz27)",fontsize=16,color="black",shape="triangle"];440 -> 483[label="",style="solid", color="black", weight=3]; 437 -> 123[label="",style="dashed", color="red", weight=0]; 437[label="abs (Neg (Succ vuz1900))",fontsize=16,color="magenta"];437 -> 484[label="",style="dashed", color="magenta", weight=3]; 438 -> 123[label="",style="dashed", color="red", weight=0]; 438[label="abs vuz27",fontsize=16,color="magenta"];438 -> 485[label="",style="dashed", color="magenta", weight=3]; 442 -> 434[label="",style="dashed", color="red", weight=0]; 442[label="primQuotInt (Pos vuz180) (gcd0Gcd' (abs (Neg Zero)) (abs vuz27))",fontsize=16,color="magenta"];442 -> 486[label="",style="dashed", color="magenta", weight=3]; 442 -> 487[label="",style="dashed", color="magenta", weight=3]; 444 -> 338[label="",style="dashed", color="red", weight=0]; 444[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];443[label="primQuotInt (Pos vuz180) (gcd1 (vuz27 == vuz52) (Neg Zero) vuz27)",fontsize=16,color="black",shape="triangle"];443 -> 488[label="",style="solid", color="black", weight=3]; 446 -> 123[label="",style="dashed", color="red", weight=0]; 446[label="abs (Pos (Succ vuz1900))",fontsize=16,color="magenta"];446 -> 489[label="",style="dashed", color="magenta", weight=3]; 447 -> 123[label="",style="dashed", color="red", weight=0]; 447[label="abs vuz27",fontsize=16,color="magenta"];447 -> 490[label="",style="dashed", color="magenta", weight=3]; 445[label="primQuotInt (Neg vuz180) (gcd0Gcd' vuz54 vuz53)",fontsize=16,color="black",shape="triangle"];445 -> 491[label="",style="solid", color="black", weight=3]; 450 -> 445[label="",style="dashed", color="red", weight=0]; 450[label="primQuotInt (Neg vuz180) (gcd0Gcd' (abs (Pos Zero)) (abs vuz27))",fontsize=16,color="magenta"];450 -> 492[label="",style="dashed", color="magenta", weight=3]; 450 -> 493[label="",style="dashed", color="magenta", weight=3]; 452 -> 338[label="",style="dashed", color="red", weight=0]; 452[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];451[label="primQuotInt (Neg vuz180) (gcd1 (vuz27 == vuz55) (Pos Zero) vuz27)",fontsize=16,color="black",shape="triangle"];451 -> 494[label="",style="solid", color="black", weight=3]; 448 -> 123[label="",style="dashed", color="red", weight=0]; 448[label="abs (Neg (Succ vuz1900))",fontsize=16,color="magenta"];448 -> 495[label="",style="dashed", color="magenta", weight=3]; 449 -> 123[label="",style="dashed", color="red", weight=0]; 449[label="abs vuz27",fontsize=16,color="magenta"];449 -> 496[label="",style="dashed", color="magenta", weight=3]; 453 -> 445[label="",style="dashed", color="red", weight=0]; 453[label="primQuotInt (Neg vuz180) (gcd0Gcd' (abs (Neg Zero)) (abs vuz27))",fontsize=16,color="magenta"];453 -> 497[label="",style="dashed", color="magenta", weight=3]; 453 -> 498[label="",style="dashed", color="magenta", weight=3]; 455 -> 338[label="",style="dashed", color="red", weight=0]; 455[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];454[label="primQuotInt (Neg vuz180) (gcd1 (vuz27 == vuz56) (Neg Zero) vuz27)",fontsize=16,color="black",shape="triangle"];454 -> 499[label="",style="solid", color="black", weight=3]; 456[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Pos (Succ vuz4000)) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Pos (Succ vuz4000)) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];456 -> 500[label="",style="solid", color="black", weight=3]; 457[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Pos Zero) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Pos Zero) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];457 -> 501[label="",style="solid", color="black", weight=3]; 458[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Neg (Succ vuz4000)) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Neg (Succ vuz4000)) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];458 -> 502[label="",style="solid", color="black", weight=3]; 459[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Neg Zero) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Neg Zero) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];459 -> 503[label="",style="solid", color="black", weight=3]; 464[label="absReal1 (Integer vuz32) (not (GT == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (GT == LT)))",fontsize=16,color="black",shape="box"];464 -> 506[label="",style="solid", color="black", weight=3]; 465[label="absReal1 (Integer vuz32) (not False) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not False))",fontsize=16,color="black",shape="triangle"];465 -> 507[label="",style="solid", color="black", weight=3]; 466[label="absReal1 (Integer vuz32) (not True) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not True))",fontsize=16,color="black",shape="box"];466 -> 508[label="",style="solid", color="black", weight=3]; 467[label="primEqInt (Pos (Succ vuz2800)) (Pos Zero)",fontsize=16,color="black",shape="box"];467 -> 509[label="",style="solid", color="black", weight=3]; 468[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];468 -> 510[label="",style="solid", color="black", weight=3]; 469[label="primEqInt (Neg (Succ vuz2800)) (Pos Zero)",fontsize=16,color="black",shape="box"];469 -> 511[label="",style="solid", color="black", weight=3]; 470[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];470 -> 512[label="",style="solid", color="black", weight=3]; 545[label="Neg vuz280",fontsize=16,color="green",shape="box"];546[label="Pos vuz280",fontsize=16,color="green",shape="box"];474[label="signumReal1 (Pos (Succ vuz2600)) (primCmpInt (Pos (Succ vuz2600)) (Pos vuz480) == GT)",fontsize=16,color="black",shape="box"];474 -> 518[label="",style="solid", color="black", weight=3]; 475[label="signumReal1 (Pos (Succ vuz2600)) (primCmpInt (Pos (Succ vuz2600)) (Neg vuz480) == GT)",fontsize=16,color="black",shape="box"];475 -> 519[label="",style="solid", color="black", weight=3]; 476[label="signumReal1 (Neg (Succ vuz2600)) (primCmpInt (Neg (Succ vuz2600)) (Pos vuz460) == GT)",fontsize=16,color="black",shape="box"];476 -> 520[label="",style="solid", color="black", weight=3]; 477[label="signumReal1 (Neg (Succ vuz2600)) (primCmpInt (Neg (Succ vuz2600)) (Neg vuz460) == GT)",fontsize=16,color="black",shape="box"];477 -> 521[label="",style="solid", color="black", weight=3]; 478[label="Pos (Succ vuz1900)",fontsize=16,color="green",shape="box"];479[label="vuz27",fontsize=16,color="green",shape="box"];480[label="primQuotInt (Pos vuz180) (gcd0Gcd'2 vuz50 vuz49)",fontsize=16,color="black",shape="box"];480 -> 522[label="",style="solid", color="black", weight=3]; 481 -> 123[label="",style="dashed", color="red", weight=0]; 481[label="abs (Pos Zero)",fontsize=16,color="magenta"];481 -> 523[label="",style="dashed", color="magenta", weight=3]; 482 -> 123[label="",style="dashed", color="red", weight=0]; 482[label="abs vuz27",fontsize=16,color="magenta"];482 -> 524[label="",style="dashed", color="magenta", weight=3]; 483[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt vuz27 vuz51) (Pos Zero) vuz27)",fontsize=16,color="burlywood",shape="box"];5486[label="vuz27/Pos vuz270",fontsize=10,color="white",style="solid",shape="box"];483 -> 5486[label="",style="solid", color="burlywood", weight=9]; 5486 -> 525[label="",style="solid", color="burlywood", weight=3]; 5487[label="vuz27/Neg vuz270",fontsize=10,color="white",style="solid",shape="box"];483 -> 5487[label="",style="solid", color="burlywood", weight=9]; 5487 -> 526[label="",style="solid", color="burlywood", weight=3]; 484[label="Neg (Succ vuz1900)",fontsize=16,color="green",shape="box"];485[label="vuz27",fontsize=16,color="green",shape="box"];486 -> 123[label="",style="dashed", color="red", weight=0]; 486[label="abs (Neg Zero)",fontsize=16,color="magenta"];486 -> 527[label="",style="dashed", color="magenta", weight=3]; 487 -> 123[label="",style="dashed", color="red", weight=0]; 487[label="abs vuz27",fontsize=16,color="magenta"];487 -> 528[label="",style="dashed", color="magenta", weight=3]; 488[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt vuz27 vuz52) (Neg Zero) vuz27)",fontsize=16,color="burlywood",shape="box"];5488[label="vuz27/Pos vuz270",fontsize=10,color="white",style="solid",shape="box"];488 -> 5488[label="",style="solid", color="burlywood", weight=9]; 5488 -> 529[label="",style="solid", color="burlywood", weight=3]; 5489[label="vuz27/Neg vuz270",fontsize=10,color="white",style="solid",shape="box"];488 -> 5489[label="",style="solid", color="burlywood", weight=9]; 5489 -> 530[label="",style="solid", color="burlywood", weight=3]; 489[label="Pos (Succ vuz1900)",fontsize=16,color="green",shape="box"];490[label="vuz27",fontsize=16,color="green",shape="box"];491[label="primQuotInt (Neg vuz180) (gcd0Gcd'2 vuz54 vuz53)",fontsize=16,color="black",shape="box"];491 -> 531[label="",style="solid", color="black", weight=3]; 492 -> 123[label="",style="dashed", color="red", weight=0]; 492[label="abs (Pos Zero)",fontsize=16,color="magenta"];492 -> 532[label="",style="dashed", color="magenta", weight=3]; 493 -> 123[label="",style="dashed", color="red", weight=0]; 493[label="abs vuz27",fontsize=16,color="magenta"];493 -> 533[label="",style="dashed", color="magenta", weight=3]; 494[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt vuz27 vuz55) (Pos Zero) vuz27)",fontsize=16,color="burlywood",shape="box"];5490[label="vuz27/Pos vuz270",fontsize=10,color="white",style="solid",shape="box"];494 -> 5490[label="",style="solid", color="burlywood", weight=9]; 5490 -> 534[label="",style="solid", color="burlywood", weight=3]; 5491[label="vuz27/Neg vuz270",fontsize=10,color="white",style="solid",shape="box"];494 -> 5491[label="",style="solid", color="burlywood", weight=9]; 5491 -> 535[label="",style="solid", color="burlywood", weight=3]; 495[label="Neg (Succ vuz1900)",fontsize=16,color="green",shape="box"];496[label="vuz27",fontsize=16,color="green",shape="box"];497 -> 123[label="",style="dashed", color="red", weight=0]; 497[label="abs (Neg Zero)",fontsize=16,color="magenta"];497 -> 536[label="",style="dashed", color="magenta", weight=3]; 498 -> 123[label="",style="dashed", color="red", weight=0]; 498[label="abs vuz27",fontsize=16,color="magenta"];498 -> 537[label="",style="dashed", color="magenta", weight=3]; 499[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt vuz27 vuz56) (Neg Zero) vuz27)",fontsize=16,color="burlywood",shape="box"];5492[label="vuz27/Pos vuz270",fontsize=10,color="white",style="solid",shape="box"];499 -> 5492[label="",style="solid", color="burlywood", weight=9]; 5492 -> 538[label="",style="solid", color="burlywood", weight=3]; 5493[label="vuz27/Neg vuz270",fontsize=10,color="white",style="solid",shape="box"];499 -> 5493[label="",style="solid", color="burlywood", weight=9]; 5493 -> 539[label="",style="solid", color="burlywood", weight=3]; 500[label="Integer vuz30 * signumReal2 (Integer vuz38) False `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) False) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];500 -> 540[label="",style="solid", color="black", weight=3]; 501[label="Integer vuz30 * signumReal2 (Integer vuz38) True `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];501 -> 541[label="",style="solid", color="black", weight=3]; 502 -> 500[label="",style="dashed", color="red", weight=0]; 502[label="Integer vuz30 * signumReal2 (Integer vuz38) False `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) False) (abs (Integer vuz37))",fontsize=16,color="magenta"];503 -> 501[label="",style="dashed", color="red", weight=0]; 503[label="Integer vuz30 * signumReal2 (Integer vuz38) True `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) True) (abs (Integer vuz37))",fontsize=16,color="magenta"];506 -> 465[label="",style="dashed", color="red", weight=0]; 506[label="absReal1 (Integer vuz32) (not False) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not False))",fontsize=16,color="magenta"];507[label="absReal1 (Integer vuz32) True `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) True)",fontsize=16,color="black",shape="box"];507 -> 543[label="",style="solid", color="black", weight=3]; 508[label="absReal1 (Integer vuz32) False `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) False)",fontsize=16,color="black",shape="box"];508 -> 544[label="",style="solid", color="black", weight=3]; 509[label="False",fontsize=16,color="green",shape="box"];510[label="True",fontsize=16,color="green",shape="box"];511[label="False",fontsize=16,color="green",shape="box"];512[label="True",fontsize=16,color="green",shape="box"];518 -> 2211[label="",style="dashed", color="red", weight=0]; 518[label="signumReal1 (Pos (Succ vuz2600)) (primCmpNat (Succ vuz2600) vuz480 == GT)",fontsize=16,color="magenta"];518 -> 2212[label="",style="dashed", color="magenta", weight=3]; 518 -> 2213[label="",style="dashed", color="magenta", weight=3]; 518 -> 2214[label="",style="dashed", color="magenta", weight=3]; 519[label="signumReal1 (Pos (Succ vuz2600)) (GT == GT)",fontsize=16,color="black",shape="triangle"];519 -> 551[label="",style="solid", color="black", weight=3]; 520[label="signumReal1 (Neg (Succ vuz2600)) (LT == GT)",fontsize=16,color="black",shape="triangle"];520 -> 552[label="",style="solid", color="black", weight=3]; 521 -> 2267[label="",style="dashed", color="red", weight=0]; 521[label="signumReal1 (Neg (Succ vuz2600)) (primCmpNat vuz460 (Succ vuz2600) == GT)",fontsize=16,color="magenta"];521 -> 2268[label="",style="dashed", color="magenta", weight=3]; 521 -> 2269[label="",style="dashed", color="magenta", weight=3]; 521 -> 2270[label="",style="dashed", color="magenta", weight=3]; 522 -> 555[label="",style="dashed", color="red", weight=0]; 522[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (vuz49 == fromInt (Pos Zero)) vuz50 vuz49)",fontsize=16,color="magenta"];522 -> 556[label="",style="dashed", color="magenta", weight=3]; 523[label="Pos Zero",fontsize=16,color="green",shape="box"];524[label="vuz27",fontsize=16,color="green",shape="box"];525[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos vuz270) vuz51) (Pos Zero) (Pos vuz270))",fontsize=16,color="burlywood",shape="box"];5494[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];525 -> 5494[label="",style="solid", color="burlywood", weight=9]; 5494 -> 557[label="",style="solid", color="burlywood", weight=3]; 5495[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];525 -> 5495[label="",style="solid", color="burlywood", weight=9]; 5495 -> 558[label="",style="solid", color="burlywood", weight=3]; 526[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg vuz270) vuz51) (Pos Zero) (Neg vuz270))",fontsize=16,color="burlywood",shape="box"];5496[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];526 -> 5496[label="",style="solid", color="burlywood", weight=9]; 5496 -> 559[label="",style="solid", color="burlywood", weight=3]; 5497[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];526 -> 5497[label="",style="solid", color="burlywood", weight=9]; 5497 -> 560[label="",style="solid", color="burlywood", weight=3]; 527[label="Neg Zero",fontsize=16,color="green",shape="box"];528[label="vuz27",fontsize=16,color="green",shape="box"];529[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos vuz270) vuz52) (Neg Zero) (Pos vuz270))",fontsize=16,color="burlywood",shape="box"];5498[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];529 -> 5498[label="",style="solid", color="burlywood", weight=9]; 5498 -> 561[label="",style="solid", color="burlywood", weight=3]; 5499[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];529 -> 5499[label="",style="solid", color="burlywood", weight=9]; 5499 -> 562[label="",style="solid", color="burlywood", weight=3]; 530[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg vuz270) vuz52) (Neg Zero) (Neg vuz270))",fontsize=16,color="burlywood",shape="box"];5500[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];530 -> 5500[label="",style="solid", color="burlywood", weight=9]; 5500 -> 563[label="",style="solid", color="burlywood", weight=3]; 5501[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];530 -> 5501[label="",style="solid", color="burlywood", weight=9]; 5501 -> 564[label="",style="solid", color="burlywood", weight=3]; 531 -> 565[label="",style="dashed", color="red", weight=0]; 531[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (vuz53 == fromInt (Pos Zero)) vuz54 vuz53)",fontsize=16,color="magenta"];531 -> 566[label="",style="dashed", color="magenta", weight=3]; 532[label="Pos Zero",fontsize=16,color="green",shape="box"];533[label="vuz27",fontsize=16,color="green",shape="box"];534[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos vuz270) vuz55) (Pos Zero) (Pos vuz270))",fontsize=16,color="burlywood",shape="box"];5502[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];534 -> 5502[label="",style="solid", color="burlywood", weight=9]; 5502 -> 567[label="",style="solid", color="burlywood", weight=3]; 5503[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];534 -> 5503[label="",style="solid", color="burlywood", weight=9]; 5503 -> 568[label="",style="solid", color="burlywood", weight=3]; 535[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg vuz270) vuz55) (Pos Zero) (Neg vuz270))",fontsize=16,color="burlywood",shape="box"];5504[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];535 -> 5504[label="",style="solid", color="burlywood", weight=9]; 5504 -> 569[label="",style="solid", color="burlywood", weight=3]; 5505[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];535 -> 5505[label="",style="solid", color="burlywood", weight=9]; 5505 -> 570[label="",style="solid", color="burlywood", weight=3]; 536[label="Neg Zero",fontsize=16,color="green",shape="box"];537[label="vuz27",fontsize=16,color="green",shape="box"];538[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos vuz270) vuz56) (Neg Zero) (Pos vuz270))",fontsize=16,color="burlywood",shape="box"];5506[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];538 -> 5506[label="",style="solid", color="burlywood", weight=9]; 5506 -> 571[label="",style="solid", color="burlywood", weight=3]; 5507[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];538 -> 5507[label="",style="solid", color="burlywood", weight=9]; 5507 -> 572[label="",style="solid", color="burlywood", weight=3]; 539[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg vuz270) vuz56) (Neg Zero) (Neg vuz270))",fontsize=16,color="burlywood",shape="box"];5508[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];539 -> 5508[label="",style="solid", color="burlywood", weight=9]; 5508 -> 573[label="",style="solid", color="burlywood", weight=3]; 5509[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];539 -> 5509[label="",style="solid", color="burlywood", weight=9]; 5509 -> 574[label="",style="solid", color="burlywood", weight=3]; 540[label="Integer vuz30 * signumReal1 (Integer vuz38) (Integer vuz38 > fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer vuz38) (Integer vuz38 > fromInt (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];540 -> 575[label="",style="solid", color="black", weight=3]; 541[label="Integer vuz30 * fromInt (Pos Zero) `quot` reduce2D (Integer vuz31 * fromInt (Pos Zero)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];541 -> 576[label="",style="solid", color="black", weight=3]; 543[label="Integer vuz32 `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="black",shape="triangle"];543 -> 578[label="",style="solid", color="black", weight=3]; 544[label="absReal0 (Integer vuz32) otherwise `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal0 (Integer vuz32) otherwise)",fontsize=16,color="black",shape="box"];544 -> 579[label="",style="solid", color="black", weight=3]; 2212[label="vuz2600",fontsize=16,color="green",shape="box"];2213[label="Succ vuz2600",fontsize=16,color="green",shape="box"];2214[label="vuz480",fontsize=16,color="green",shape="box"];2211[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat vuz135 vuz136 == GT)",fontsize=16,color="burlywood",shape="triangle"];5510[label="vuz135/Succ vuz1350",fontsize=10,color="white",style="solid",shape="box"];2211 -> 5510[label="",style="solid", color="burlywood", weight=9]; 5510 -> 2242[label="",style="solid", color="burlywood", weight=3]; 5511[label="vuz135/Zero",fontsize=10,color="white",style="solid",shape="box"];2211 -> 5511[label="",style="solid", color="burlywood", weight=9]; 5511 -> 2243[label="",style="solid", color="burlywood", weight=3]; 551[label="signumReal1 (Pos (Succ vuz2600)) True",fontsize=16,color="black",shape="box"];551 -> 584[label="",style="solid", color="black", weight=3]; 552[label="signumReal1 (Neg (Succ vuz2600)) False",fontsize=16,color="black",shape="triangle"];552 -> 585[label="",style="solid", color="black", weight=3]; 2268[label="vuz2600",fontsize=16,color="green",shape="box"];2269[label="vuz460",fontsize=16,color="green",shape="box"];2270[label="Succ vuz2600",fontsize=16,color="green",shape="box"];2267[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat vuz139 vuz140 == GT)",fontsize=16,color="burlywood",shape="triangle"];5512[label="vuz139/Succ vuz1390",fontsize=10,color="white",style="solid",shape="box"];2267 -> 5512[label="",style="solid", color="burlywood", weight=9]; 5512 -> 2298[label="",style="solid", color="burlywood", weight=3]; 5513[label="vuz139/Zero",fontsize=10,color="white",style="solid",shape="box"];2267 -> 5513[label="",style="solid", color="burlywood", weight=9]; 5513 -> 2299[label="",style="solid", color="burlywood", weight=3]; 556 -> 338[label="",style="dashed", color="red", weight=0]; 556[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];555[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (vuz49 == vuz57) vuz50 vuz49)",fontsize=16,color="black",shape="triangle"];555 -> 588[label="",style="solid", color="black", weight=3]; 557[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) vuz51) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5514[label="vuz51/Pos vuz510",fontsize=10,color="white",style="solid",shape="box"];557 -> 5514[label="",style="solid", color="burlywood", weight=9]; 5514 -> 589[label="",style="solid", color="burlywood", weight=3]; 5515[label="vuz51/Neg vuz510",fontsize=10,color="white",style="solid",shape="box"];557 -> 5515[label="",style="solid", color="burlywood", weight=9]; 5515 -> 590[label="",style="solid", color="burlywood", weight=3]; 558[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) vuz51) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5516[label="vuz51/Pos vuz510",fontsize=10,color="white",style="solid",shape="box"];558 -> 5516[label="",style="solid", color="burlywood", weight=9]; 5516 -> 591[label="",style="solid", color="burlywood", weight=3]; 5517[label="vuz51/Neg vuz510",fontsize=10,color="white",style="solid",shape="box"];558 -> 5517[label="",style="solid", color="burlywood", weight=9]; 5517 -> 592[label="",style="solid", color="burlywood", weight=3]; 559[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) vuz51) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5518[label="vuz51/Pos vuz510",fontsize=10,color="white",style="solid",shape="box"];559 -> 5518[label="",style="solid", color="burlywood", weight=9]; 5518 -> 593[label="",style="solid", color="burlywood", weight=3]; 5519[label="vuz51/Neg vuz510",fontsize=10,color="white",style="solid",shape="box"];559 -> 5519[label="",style="solid", color="burlywood", weight=9]; 5519 -> 594[label="",style="solid", color="burlywood", weight=3]; 560[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) vuz51) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5520[label="vuz51/Pos vuz510",fontsize=10,color="white",style="solid",shape="box"];560 -> 5520[label="",style="solid", color="burlywood", weight=9]; 5520 -> 595[label="",style="solid", color="burlywood", weight=3]; 5521[label="vuz51/Neg vuz510",fontsize=10,color="white",style="solid",shape="box"];560 -> 5521[label="",style="solid", color="burlywood", weight=9]; 5521 -> 596[label="",style="solid", color="burlywood", weight=3]; 561[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) vuz52) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5522[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];561 -> 5522[label="",style="solid", color="burlywood", weight=9]; 5522 -> 597[label="",style="solid", color="burlywood", weight=3]; 5523[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];561 -> 5523[label="",style="solid", color="burlywood", weight=9]; 5523 -> 598[label="",style="solid", color="burlywood", weight=3]; 562[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) vuz52) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5524[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];562 -> 5524[label="",style="solid", color="burlywood", weight=9]; 5524 -> 599[label="",style="solid", color="burlywood", weight=3]; 5525[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];562 -> 5525[label="",style="solid", color="burlywood", weight=9]; 5525 -> 600[label="",style="solid", color="burlywood", weight=3]; 563[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) vuz52) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5526[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];563 -> 5526[label="",style="solid", color="burlywood", weight=9]; 5526 -> 601[label="",style="solid", color="burlywood", weight=3]; 5527[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];563 -> 5527[label="",style="solid", color="burlywood", weight=9]; 5527 -> 602[label="",style="solid", color="burlywood", weight=3]; 564[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) vuz52) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5528[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];564 -> 5528[label="",style="solid", color="burlywood", weight=9]; 5528 -> 603[label="",style="solid", color="burlywood", weight=3]; 5529[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];564 -> 5529[label="",style="solid", color="burlywood", weight=9]; 5529 -> 604[label="",style="solid", color="burlywood", weight=3]; 566 -> 338[label="",style="dashed", color="red", weight=0]; 566[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];565[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (vuz53 == vuz58) vuz54 vuz53)",fontsize=16,color="black",shape="triangle"];565 -> 605[label="",style="solid", color="black", weight=3]; 567[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) vuz55) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5530[label="vuz55/Pos vuz550",fontsize=10,color="white",style="solid",shape="box"];567 -> 5530[label="",style="solid", color="burlywood", weight=9]; 5530 -> 606[label="",style="solid", color="burlywood", weight=3]; 5531[label="vuz55/Neg vuz550",fontsize=10,color="white",style="solid",shape="box"];567 -> 5531[label="",style="solid", color="burlywood", weight=9]; 5531 -> 607[label="",style="solid", color="burlywood", weight=3]; 568[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) vuz55) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5532[label="vuz55/Pos vuz550",fontsize=10,color="white",style="solid",shape="box"];568 -> 5532[label="",style="solid", color="burlywood", weight=9]; 5532 -> 608[label="",style="solid", color="burlywood", weight=3]; 5533[label="vuz55/Neg vuz550",fontsize=10,color="white",style="solid",shape="box"];568 -> 5533[label="",style="solid", color="burlywood", weight=9]; 5533 -> 609[label="",style="solid", color="burlywood", weight=3]; 569[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) vuz55) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5534[label="vuz55/Pos vuz550",fontsize=10,color="white",style="solid",shape="box"];569 -> 5534[label="",style="solid", color="burlywood", weight=9]; 5534 -> 610[label="",style="solid", color="burlywood", weight=3]; 5535[label="vuz55/Neg vuz550",fontsize=10,color="white",style="solid",shape="box"];569 -> 5535[label="",style="solid", color="burlywood", weight=9]; 5535 -> 611[label="",style="solid", color="burlywood", weight=3]; 570[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) vuz55) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5536[label="vuz55/Pos vuz550",fontsize=10,color="white",style="solid",shape="box"];570 -> 5536[label="",style="solid", color="burlywood", weight=9]; 5536 -> 612[label="",style="solid", color="burlywood", weight=3]; 5537[label="vuz55/Neg vuz550",fontsize=10,color="white",style="solid",shape="box"];570 -> 5537[label="",style="solid", color="burlywood", weight=9]; 5537 -> 613[label="",style="solid", color="burlywood", weight=3]; 571[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) vuz56) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5538[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];571 -> 5538[label="",style="solid", color="burlywood", weight=9]; 5538 -> 614[label="",style="solid", color="burlywood", weight=3]; 5539[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];571 -> 5539[label="",style="solid", color="burlywood", weight=9]; 5539 -> 615[label="",style="solid", color="burlywood", weight=3]; 572[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) vuz56) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5540[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];572 -> 5540[label="",style="solid", color="burlywood", weight=9]; 5540 -> 616[label="",style="solid", color="burlywood", weight=3]; 5541[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];572 -> 5541[label="",style="solid", color="burlywood", weight=9]; 5541 -> 617[label="",style="solid", color="burlywood", weight=3]; 573[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) vuz56) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5542[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];573 -> 5542[label="",style="solid", color="burlywood", weight=9]; 5542 -> 618[label="",style="solid", color="burlywood", weight=3]; 5543[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];573 -> 5543[label="",style="solid", color="burlywood", weight=9]; 5543 -> 619[label="",style="solid", color="burlywood", weight=3]; 574[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) vuz56) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5544[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];574 -> 5544[label="",style="solid", color="burlywood", weight=9]; 5544 -> 620[label="",style="solid", color="burlywood", weight=3]; 5545[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];574 -> 5545[label="",style="solid", color="burlywood", weight=9]; 5545 -> 621[label="",style="solid", color="burlywood", weight=3]; 575[label="Integer vuz30 * signumReal1 (Integer vuz38) (compare (Integer vuz38) (fromInt (Pos Zero)) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer vuz38) (compare (Integer vuz38) (fromInt (Pos Zero)) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];575 -> 622[label="",style="solid", color="black", weight=3]; 576[label="Integer vuz30 * Integer (Pos Zero) `quot` reduce2D (Integer vuz31 * Integer (Pos Zero)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];576 -> 623[label="",style="solid", color="black", weight=3]; 578[label="Integer vuz32 `quot` gcd (vuz11 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="black",shape="box"];578 -> 625[label="",style="solid", color="black", weight=3]; 579[label="absReal0 (Integer vuz32) True `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal0 (Integer vuz32) True)",fontsize=16,color="black",shape="box"];579 -> 626[label="",style="solid", color="black", weight=3]; 2242[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat (Succ vuz1350) vuz136 == GT)",fontsize=16,color="burlywood",shape="box"];5546[label="vuz136/Succ vuz1360",fontsize=10,color="white",style="solid",shape="box"];2242 -> 5546[label="",style="solid", color="burlywood", weight=9]; 5546 -> 2300[label="",style="solid", color="burlywood", weight=3]; 5547[label="vuz136/Zero",fontsize=10,color="white",style="solid",shape="box"];2242 -> 5547[label="",style="solid", color="burlywood", weight=9]; 5547 -> 2301[label="",style="solid", color="burlywood", weight=3]; 2243[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat Zero vuz136 == GT)",fontsize=16,color="burlywood",shape="box"];5548[label="vuz136/Succ vuz1360",fontsize=10,color="white",style="solid",shape="box"];2243 -> 5548[label="",style="solid", color="burlywood", weight=9]; 5548 -> 2302[label="",style="solid", color="burlywood", weight=3]; 5549[label="vuz136/Zero",fontsize=10,color="white",style="solid",shape="box"];2243 -> 5549[label="",style="solid", color="burlywood", weight=9]; 5549 -> 2303[label="",style="solid", color="burlywood", weight=3]; 584[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];584 -> 633[label="",style="solid", color="black", weight=3]; 585[label="signumReal0 (Neg (Succ vuz2600)) otherwise",fontsize=16,color="black",shape="box"];585 -> 634[label="",style="solid", color="black", weight=3]; 2298[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat (Succ vuz1390) vuz140 == GT)",fontsize=16,color="burlywood",shape="box"];5550[label="vuz140/Succ vuz1400",fontsize=10,color="white",style="solid",shape="box"];2298 -> 5550[label="",style="solid", color="burlywood", weight=9]; 5550 -> 2333[label="",style="solid", color="burlywood", weight=3]; 5551[label="vuz140/Zero",fontsize=10,color="white",style="solid",shape="box"];2298 -> 5551[label="",style="solid", color="burlywood", weight=9]; 5551 -> 2334[label="",style="solid", color="burlywood", weight=3]; 2299[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat Zero vuz140 == GT)",fontsize=16,color="burlywood",shape="box"];5552[label="vuz140/Succ vuz1400",fontsize=10,color="white",style="solid",shape="box"];2299 -> 5552[label="",style="solid", color="burlywood", weight=9]; 5552 -> 2335[label="",style="solid", color="burlywood", weight=3]; 5553[label="vuz140/Zero",fontsize=10,color="white",style="solid",shape="box"];2299 -> 5553[label="",style="solid", color="burlywood", weight=9]; 5553 -> 2336[label="",style="solid", color="burlywood", weight=3]; 588[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt vuz49 vuz57) vuz50 vuz49)",fontsize=16,color="burlywood",shape="box"];5554[label="vuz49/Pos vuz490",fontsize=10,color="white",style="solid",shape="box"];588 -> 5554[label="",style="solid", color="burlywood", weight=9]; 5554 -> 637[label="",style="solid", color="burlywood", weight=3]; 5555[label="vuz49/Neg vuz490",fontsize=10,color="white",style="solid",shape="box"];588 -> 5555[label="",style="solid", color="burlywood", weight=9]; 5555 -> 638[label="",style="solid", color="burlywood", weight=3]; 589[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos vuz510)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5556[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];589 -> 5556[label="",style="solid", color="burlywood", weight=9]; 5556 -> 639[label="",style="solid", color="burlywood", weight=3]; 5557[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];589 -> 5557[label="",style="solid", color="burlywood", weight=9]; 5557 -> 640[label="",style="solid", color="burlywood", weight=3]; 590[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Neg vuz510)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];590 -> 641[label="",style="solid", color="black", weight=3]; 591[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos vuz510)) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5558[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];591 -> 5558[label="",style="solid", color="burlywood", weight=9]; 5558 -> 642[label="",style="solid", color="burlywood", weight=3]; 5559[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];591 -> 5559[label="",style="solid", color="burlywood", weight=9]; 5559 -> 643[label="",style="solid", color="burlywood", weight=3]; 592[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg vuz510)) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5560[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];592 -> 5560[label="",style="solid", color="burlywood", weight=9]; 5560 -> 644[label="",style="solid", color="burlywood", weight=3]; 5561[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];592 -> 5561[label="",style="solid", color="burlywood", weight=9]; 5561 -> 645[label="",style="solid", color="burlywood", weight=3]; 593[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Pos vuz510)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];593 -> 646[label="",style="solid", color="black", weight=3]; 594[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg vuz510)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5562[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];594 -> 5562[label="",style="solid", color="burlywood", weight=9]; 5562 -> 647[label="",style="solid", color="burlywood", weight=3]; 5563[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];594 -> 5563[label="",style="solid", color="burlywood", weight=9]; 5563 -> 648[label="",style="solid", color="burlywood", weight=3]; 595[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos vuz510)) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5564[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];595 -> 5564[label="",style="solid", color="burlywood", weight=9]; 5564 -> 649[label="",style="solid", color="burlywood", weight=3]; 5565[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];595 -> 5565[label="",style="solid", color="burlywood", weight=9]; 5565 -> 650[label="",style="solid", color="burlywood", weight=3]; 596[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg vuz510)) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5566[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];596 -> 5566[label="",style="solid", color="burlywood", weight=9]; 5566 -> 651[label="",style="solid", color="burlywood", weight=3]; 5567[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];596 -> 5567[label="",style="solid", color="burlywood", weight=9]; 5567 -> 652[label="",style="solid", color="burlywood", weight=3]; 597[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos vuz520)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5568[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];597 -> 5568[label="",style="solid", color="burlywood", weight=9]; 5568 -> 653[label="",style="solid", color="burlywood", weight=3]; 5569[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];597 -> 5569[label="",style="solid", color="burlywood", weight=9]; 5569 -> 654[label="",style="solid", color="burlywood", weight=3]; 598[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Neg vuz520)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];598 -> 655[label="",style="solid", color="black", weight=3]; 599[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos vuz520)) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5570[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];599 -> 5570[label="",style="solid", color="burlywood", weight=9]; 5570 -> 656[label="",style="solid", color="burlywood", weight=3]; 5571[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];599 -> 5571[label="",style="solid", color="burlywood", weight=9]; 5571 -> 657[label="",style="solid", color="burlywood", weight=3]; 600[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg vuz520)) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5572[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];600 -> 5572[label="",style="solid", color="burlywood", weight=9]; 5572 -> 658[label="",style="solid", color="burlywood", weight=3]; 5573[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];600 -> 5573[label="",style="solid", color="burlywood", weight=9]; 5573 -> 659[label="",style="solid", color="burlywood", weight=3]; 601[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Pos vuz520)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];601 -> 660[label="",style="solid", color="black", weight=3]; 602[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg vuz520)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5574[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];602 -> 5574[label="",style="solid", color="burlywood", weight=9]; 5574 -> 661[label="",style="solid", color="burlywood", weight=3]; 5575[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];602 -> 5575[label="",style="solid", color="burlywood", weight=9]; 5575 -> 662[label="",style="solid", color="burlywood", weight=3]; 603[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos vuz520)) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5576[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];603 -> 5576[label="",style="solid", color="burlywood", weight=9]; 5576 -> 663[label="",style="solid", color="burlywood", weight=3]; 5577[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];603 -> 5577[label="",style="solid", color="burlywood", weight=9]; 5577 -> 664[label="",style="solid", color="burlywood", weight=3]; 604[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg vuz520)) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5578[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];604 -> 5578[label="",style="solid", color="burlywood", weight=9]; 5578 -> 665[label="",style="solid", color="burlywood", weight=3]; 5579[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];604 -> 5579[label="",style="solid", color="burlywood", weight=9]; 5579 -> 666[label="",style="solid", color="burlywood", weight=3]; 605[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt vuz53 vuz58) vuz54 vuz53)",fontsize=16,color="burlywood",shape="box"];5580[label="vuz53/Pos vuz530",fontsize=10,color="white",style="solid",shape="box"];605 -> 5580[label="",style="solid", color="burlywood", weight=9]; 5580 -> 667[label="",style="solid", color="burlywood", weight=3]; 5581[label="vuz53/Neg vuz530",fontsize=10,color="white",style="solid",shape="box"];605 -> 5581[label="",style="solid", color="burlywood", weight=9]; 5581 -> 668[label="",style="solid", color="burlywood", weight=3]; 606[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos vuz550)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5582[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];606 -> 5582[label="",style="solid", color="burlywood", weight=9]; 5582 -> 669[label="",style="solid", color="burlywood", weight=3]; 5583[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];606 -> 5583[label="",style="solid", color="burlywood", weight=9]; 5583 -> 670[label="",style="solid", color="burlywood", weight=3]; 607[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Neg vuz550)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];607 -> 671[label="",style="solid", color="black", weight=3]; 608[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos vuz550)) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5584[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];608 -> 5584[label="",style="solid", color="burlywood", weight=9]; 5584 -> 672[label="",style="solid", color="burlywood", weight=3]; 5585[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];608 -> 5585[label="",style="solid", color="burlywood", weight=9]; 5585 -> 673[label="",style="solid", color="burlywood", weight=3]; 609[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg vuz550)) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5586[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];609 -> 5586[label="",style="solid", color="burlywood", weight=9]; 5586 -> 674[label="",style="solid", color="burlywood", weight=3]; 5587[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];609 -> 5587[label="",style="solid", color="burlywood", weight=9]; 5587 -> 675[label="",style="solid", color="burlywood", weight=3]; 610[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Pos vuz550)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];610 -> 676[label="",style="solid", color="black", weight=3]; 611[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg vuz550)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5588[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];611 -> 5588[label="",style="solid", color="burlywood", weight=9]; 5588 -> 677[label="",style="solid", color="burlywood", weight=3]; 5589[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];611 -> 5589[label="",style="solid", color="burlywood", weight=9]; 5589 -> 678[label="",style="solid", color="burlywood", weight=3]; 612[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos vuz550)) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5590[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];612 -> 5590[label="",style="solid", color="burlywood", weight=9]; 5590 -> 679[label="",style="solid", color="burlywood", weight=3]; 5591[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];612 -> 5591[label="",style="solid", color="burlywood", weight=9]; 5591 -> 680[label="",style="solid", color="burlywood", weight=3]; 613[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg vuz550)) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5592[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];613 -> 5592[label="",style="solid", color="burlywood", weight=9]; 5592 -> 681[label="",style="solid", color="burlywood", weight=3]; 5593[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];613 -> 5593[label="",style="solid", color="burlywood", weight=9]; 5593 -> 682[label="",style="solid", color="burlywood", weight=3]; 614[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos vuz560)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5594[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];614 -> 5594[label="",style="solid", color="burlywood", weight=9]; 5594 -> 683[label="",style="solid", color="burlywood", weight=3]; 5595[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];614 -> 5595[label="",style="solid", color="burlywood", weight=9]; 5595 -> 684[label="",style="solid", color="burlywood", weight=3]; 615[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Neg vuz560)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];615 -> 685[label="",style="solid", color="black", weight=3]; 616[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos vuz560)) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5596[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];616 -> 5596[label="",style="solid", color="burlywood", weight=9]; 5596 -> 686[label="",style="solid", color="burlywood", weight=3]; 5597[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];616 -> 5597[label="",style="solid", color="burlywood", weight=9]; 5597 -> 687[label="",style="solid", color="burlywood", weight=3]; 617[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg vuz560)) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5598[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];617 -> 5598[label="",style="solid", color="burlywood", weight=9]; 5598 -> 688[label="",style="solid", color="burlywood", weight=3]; 5599[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];617 -> 5599[label="",style="solid", color="burlywood", weight=9]; 5599 -> 689[label="",style="solid", color="burlywood", weight=3]; 618[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Pos vuz560)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];618 -> 690[label="",style="solid", color="black", weight=3]; 619[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg vuz560)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5600[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];619 -> 5600[label="",style="solid", color="burlywood", weight=9]; 5600 -> 691[label="",style="solid", color="burlywood", weight=3]; 5601[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];619 -> 5601[label="",style="solid", color="burlywood", weight=9]; 5601 -> 692[label="",style="solid", color="burlywood", weight=3]; 620[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos vuz560)) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5602[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];620 -> 5602[label="",style="solid", color="burlywood", weight=9]; 5602 -> 693[label="",style="solid", color="burlywood", weight=3]; 5603[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];620 -> 5603[label="",style="solid", color="burlywood", weight=9]; 5603 -> 694[label="",style="solid", color="burlywood", weight=3]; 621[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg vuz560)) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5604[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];621 -> 5604[label="",style="solid", color="burlywood", weight=9]; 5604 -> 695[label="",style="solid", color="burlywood", weight=3]; 5605[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];621 -> 5605[label="",style="solid", color="burlywood", weight=9]; 5605 -> 696[label="",style="solid", color="burlywood", weight=3]; 622[label="Integer vuz30 * signumReal1 (Integer vuz38) (compare (Integer vuz38) (Integer (Pos Zero)) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer vuz38) (compare (Integer vuz38) (Integer (Pos Zero)) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];622 -> 697[label="",style="solid", color="black", weight=3]; 623 -> 698[label="",style="dashed", color="red", weight=0]; 623[label="Integer (primMulInt vuz30 (Pos Zero)) `quot` reduce2D (Integer (primMulInt vuz30 (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="magenta"];623 -> 699[label="",style="dashed", color="magenta", weight=3]; 623 -> 700[label="",style="dashed", color="magenta", weight=3]; 625[label="Integer vuz32 `quot` gcd3 (vuz11 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="black",shape="box"];625 -> 701[label="",style="solid", color="black", weight=3]; 626[label="(`negate` Integer vuz32) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (`negate` Integer vuz32)",fontsize=16,color="black",shape="box"];626 -> 702[label="",style="solid", color="black", weight=3]; 2300[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat (Succ vuz1350) (Succ vuz1360) == GT)",fontsize=16,color="black",shape="box"];2300 -> 2337[label="",style="solid", color="black", weight=3]; 2301[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat (Succ vuz1350) Zero == GT)",fontsize=16,color="black",shape="box"];2301 -> 2338[label="",style="solid", color="black", weight=3]; 2302[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat Zero (Succ vuz1360) == GT)",fontsize=16,color="black",shape="box"];2302 -> 2339[label="",style="solid", color="black", weight=3]; 2303[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];2303 -> 2340[label="",style="solid", color="black", weight=3]; 633[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];634[label="signumReal0 (Neg (Succ vuz2600)) True",fontsize=16,color="black",shape="box"];634 -> 711[label="",style="solid", color="black", weight=3]; 2333[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat (Succ vuz1390) (Succ vuz1400) == GT)",fontsize=16,color="black",shape="box"];2333 -> 2371[label="",style="solid", color="black", weight=3]; 2334[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat (Succ vuz1390) Zero == GT)",fontsize=16,color="black",shape="box"];2334 -> 2372[label="",style="solid", color="black", weight=3]; 2335[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat Zero (Succ vuz1400) == GT)",fontsize=16,color="black",shape="box"];2335 -> 2373[label="",style="solid", color="black", weight=3]; 2336[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];2336 -> 2374[label="",style="solid", color="black", weight=3]; 637[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos vuz490) vuz57) vuz50 (Pos vuz490))",fontsize=16,color="burlywood",shape="box"];5606[label="vuz490/Succ vuz4900",fontsize=10,color="white",style="solid",shape="box"];637 -> 5606[label="",style="solid", color="burlywood", weight=9]; 5606 -> 716[label="",style="solid", color="burlywood", weight=3]; 5607[label="vuz490/Zero",fontsize=10,color="white",style="solid",shape="box"];637 -> 5607[label="",style="solid", color="burlywood", weight=9]; 5607 -> 717[label="",style="solid", color="burlywood", weight=3]; 638[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg vuz490) vuz57) vuz50 (Neg vuz490))",fontsize=16,color="burlywood",shape="box"];5608[label="vuz490/Succ vuz4900",fontsize=10,color="white",style="solid",shape="box"];638 -> 5608[label="",style="solid", color="burlywood", weight=9]; 5608 -> 718[label="",style="solid", color="burlywood", weight=3]; 5609[label="vuz490/Zero",fontsize=10,color="white",style="solid",shape="box"];638 -> 5609[label="",style="solid", color="burlywood", weight=9]; 5609 -> 719[label="",style="solid", color="burlywood", weight=3]; 639[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos (Succ vuz5100))) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];639 -> 720[label="",style="solid", color="black", weight=3]; 640[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos Zero)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];640 -> 721[label="",style="solid", color="black", weight=3]; 641 -> 808[label="",style="dashed", color="red", weight=0]; 641[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];641 -> 809[label="",style="dashed", color="magenta", weight=3]; 642[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos (Succ vuz5100))) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];642 -> 723[label="",style="solid", color="black", weight=3]; 643[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos Zero)) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];643 -> 724[label="",style="solid", color="black", weight=3]; 644[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg (Succ vuz5100))) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];644 -> 725[label="",style="solid", color="black", weight=3]; 645[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg Zero)) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];645 -> 726[label="",style="solid", color="black", weight=3]; 646 -> 817[label="",style="dashed", color="red", weight=0]; 646[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];646 -> 818[label="",style="dashed", color="magenta", weight=3]; 647[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg (Succ vuz5100))) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];647 -> 728[label="",style="solid", color="black", weight=3]; 648[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg Zero)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];648 -> 729[label="",style="solid", color="black", weight=3]; 649[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos (Succ vuz5100))) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];649 -> 730[label="",style="solid", color="black", weight=3]; 650[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos Zero)) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];650 -> 731[label="",style="solid", color="black", weight=3]; 651[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg (Succ vuz5100))) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];651 -> 732[label="",style="solid", color="black", weight=3]; 652[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg Zero)) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];652 -> 733[label="",style="solid", color="black", weight=3]; 653[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos (Succ vuz5200))) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];653 -> 734[label="",style="solid", color="black", weight=3]; 654[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos Zero)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];654 -> 735[label="",style="solid", color="black", weight=3]; 655 -> 825[label="",style="dashed", color="red", weight=0]; 655[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];655 -> 826[label="",style="dashed", color="magenta", weight=3]; 656[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos (Succ vuz5200))) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];656 -> 737[label="",style="solid", color="black", weight=3]; 657[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos Zero)) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];657 -> 738[label="",style="solid", color="black", weight=3]; 658[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg (Succ vuz5200))) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];658 -> 739[label="",style="solid", color="black", weight=3]; 659[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg Zero)) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];659 -> 740[label="",style="solid", color="black", weight=3]; 660 -> 834[label="",style="dashed", color="red", weight=0]; 660[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];660 -> 835[label="",style="dashed", color="magenta", weight=3]; 661[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg (Succ vuz5200))) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];661 -> 742[label="",style="solid", color="black", weight=3]; 662[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg Zero)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];662 -> 743[label="",style="solid", color="black", weight=3]; 663[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos (Succ vuz5200))) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];663 -> 744[label="",style="solid", color="black", weight=3]; 664[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos Zero)) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];664 -> 745[label="",style="solid", color="black", weight=3]; 665[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg (Succ vuz5200))) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];665 -> 746[label="",style="solid", color="black", weight=3]; 666[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg Zero)) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];666 -> 747[label="",style="solid", color="black", weight=3]; 667[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos vuz530) vuz58) vuz54 (Pos vuz530))",fontsize=16,color="burlywood",shape="box"];5610[label="vuz530/Succ vuz5300",fontsize=10,color="white",style="solid",shape="box"];667 -> 5610[label="",style="solid", color="burlywood", weight=9]; 5610 -> 748[label="",style="solid", color="burlywood", weight=3]; 5611[label="vuz530/Zero",fontsize=10,color="white",style="solid",shape="box"];667 -> 5611[label="",style="solid", color="burlywood", weight=9]; 5611 -> 749[label="",style="solid", color="burlywood", weight=3]; 668[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg vuz530) vuz58) vuz54 (Neg vuz530))",fontsize=16,color="burlywood",shape="box"];5612[label="vuz530/Succ vuz5300",fontsize=10,color="white",style="solid",shape="box"];668 -> 5612[label="",style="solid", color="burlywood", weight=9]; 5612 -> 750[label="",style="solid", color="burlywood", weight=3]; 5613[label="vuz530/Zero",fontsize=10,color="white",style="solid",shape="box"];668 -> 5613[label="",style="solid", color="burlywood", weight=9]; 5613 -> 751[label="",style="solid", color="burlywood", weight=3]; 669[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos (Succ vuz5500))) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];669 -> 752[label="",style="solid", color="black", weight=3]; 670[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos Zero)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];670 -> 753[label="",style="solid", color="black", weight=3]; 671 -> 850[label="",style="dashed", color="red", weight=0]; 671[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];671 -> 851[label="",style="dashed", color="magenta", weight=3]; 672[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos (Succ vuz5500))) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];672 -> 755[label="",style="solid", color="black", weight=3]; 673[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos Zero)) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];673 -> 756[label="",style="solid", color="black", weight=3]; 674[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg (Succ vuz5500))) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];674 -> 757[label="",style="solid", color="black", weight=3]; 675[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg Zero)) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];675 -> 758[label="",style="solid", color="black", weight=3]; 676 -> 859[label="",style="dashed", color="red", weight=0]; 676[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];676 -> 860[label="",style="dashed", color="magenta", weight=3]; 677[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg (Succ vuz5500))) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];677 -> 760[label="",style="solid", color="black", weight=3]; 678[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg Zero)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];678 -> 761[label="",style="solid", color="black", weight=3]; 679[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos (Succ vuz5500))) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];679 -> 762[label="",style="solid", color="black", weight=3]; 680[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos Zero)) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];680 -> 763[label="",style="solid", color="black", weight=3]; 681[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg (Succ vuz5500))) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];681 -> 764[label="",style="solid", color="black", weight=3]; 682[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg Zero)) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];682 -> 765[label="",style="solid", color="black", weight=3]; 683[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos (Succ vuz5600))) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];683 -> 766[label="",style="solid", color="black", weight=3]; 684[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos Zero)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];684 -> 767[label="",style="solid", color="black", weight=3]; 685 -> 867[label="",style="dashed", color="red", weight=0]; 685[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];685 -> 868[label="",style="dashed", color="magenta", weight=3]; 686[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos (Succ vuz5600))) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];686 -> 769[label="",style="solid", color="black", weight=3]; 687[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos Zero)) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];687 -> 770[label="",style="solid", color="black", weight=3]; 688[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg (Succ vuz5600))) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];688 -> 771[label="",style="solid", color="black", weight=3]; 689[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg Zero)) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];689 -> 772[label="",style="solid", color="black", weight=3]; 690 -> 876[label="",style="dashed", color="red", weight=0]; 690[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];690 -> 877[label="",style="dashed", color="magenta", weight=3]; 691[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg (Succ vuz5600))) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];691 -> 774[label="",style="solid", color="black", weight=3]; 692[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg Zero)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];692 -> 775[label="",style="solid", color="black", weight=3]; 693[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos (Succ vuz5600))) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];693 -> 776[label="",style="solid", color="black", weight=3]; 694[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos Zero)) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];694 -> 777[label="",style="solid", color="black", weight=3]; 695[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg (Succ vuz5600))) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];695 -> 778[label="",style="solid", color="black", weight=3]; 696[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg Zero)) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];696 -> 779[label="",style="solid", color="black", weight=3]; 697[label="Integer vuz30 * signumReal1 (Integer vuz38) (primCmpInt vuz38 (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer vuz38) (primCmpInt vuz38 (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5614[label="vuz38/Pos vuz380",fontsize=10,color="white",style="solid",shape="box"];697 -> 5614[label="",style="solid", color="burlywood", weight=9]; 5614 -> 780[label="",style="solid", color="burlywood", weight=3]; 5615[label="vuz38/Neg vuz380",fontsize=10,color="white",style="solid",shape="box"];697 -> 5615[label="",style="solid", color="burlywood", weight=9]; 5615 -> 781[label="",style="solid", color="burlywood", weight=3]; 699 -> 25[label="",style="dashed", color="red", weight=0]; 699[label="primMulInt vuz30 (Pos Zero)",fontsize=16,color="magenta"];699 -> 782[label="",style="dashed", color="magenta", weight=3]; 699 -> 783[label="",style="dashed", color="magenta", weight=3]; 700 -> 25[label="",style="dashed", color="red", weight=0]; 700[label="primMulInt vuz30 (Pos Zero)",fontsize=16,color="magenta"];700 -> 784[label="",style="dashed", color="magenta", weight=3]; 700 -> 785[label="",style="dashed", color="magenta", weight=3]; 698[label="Integer vuz59 `quot` reduce2D (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];698 -> 786[label="",style="solid", color="black", weight=3]; 701[label="Integer vuz32 `quot` gcd2 (vuz11 * vuz12 * signum (Integer vuz34) == fromInt (Pos Zero)) (vuz11 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="burlywood",shape="box"];5616[label="vuz11/Integer vuz110",fontsize=10,color="white",style="solid",shape="box"];701 -> 5616[label="",style="solid", color="burlywood", weight=9]; 5616 -> 787[label="",style="solid", color="burlywood", weight=3]; 702 -> 543[label="",style="dashed", color="red", weight=0]; 702[label="Integer (primNegInt vuz32) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (Integer (primNegInt vuz32))",fontsize=16,color="magenta"];702 -> 788[label="",style="dashed", color="magenta", weight=3]; 2337 -> 2211[label="",style="dashed", color="red", weight=0]; 2337[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat vuz1350 vuz1360 == GT)",fontsize=16,color="magenta"];2337 -> 2375[label="",style="dashed", color="magenta", weight=3]; 2337 -> 2376[label="",style="dashed", color="magenta", weight=3]; 2338[label="signumReal1 (Pos (Succ vuz134)) (GT == GT)",fontsize=16,color="black",shape="box"];2338 -> 2377[label="",style="solid", color="black", weight=3]; 2339[label="signumReal1 (Pos (Succ vuz134)) (LT == GT)",fontsize=16,color="black",shape="box"];2339 -> 2378[label="",style="solid", color="black", weight=3]; 2340[label="signumReal1 (Pos (Succ vuz134)) (EQ == GT)",fontsize=16,color="black",shape="box"];2340 -> 2379[label="",style="solid", color="black", weight=3]; 711[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];711 -> 795[label="",style="solid", color="black", weight=3]; 2371 -> 2267[label="",style="dashed", color="red", weight=0]; 2371[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat vuz1390 vuz1400 == GT)",fontsize=16,color="magenta"];2371 -> 2410[label="",style="dashed", color="magenta", weight=3]; 2371 -> 2411[label="",style="dashed", color="magenta", weight=3]; 2372[label="signumReal1 (Neg (Succ vuz138)) (GT == GT)",fontsize=16,color="black",shape="box"];2372 -> 2412[label="",style="solid", color="black", weight=3]; 2373[label="signumReal1 (Neg (Succ vuz138)) (LT == GT)",fontsize=16,color="black",shape="box"];2373 -> 2413[label="",style="solid", color="black", weight=3]; 2374[label="signumReal1 (Neg (Succ vuz138)) (EQ == GT)",fontsize=16,color="black",shape="box"];2374 -> 2414[label="",style="solid", color="black", weight=3]; 716[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) vuz57) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="burlywood",shape="box"];5617[label="vuz57/Pos vuz570",fontsize=10,color="white",style="solid",shape="box"];716 -> 5617[label="",style="solid", color="burlywood", weight=9]; 5617 -> 800[label="",style="solid", color="burlywood", weight=3]; 5618[label="vuz57/Neg vuz570",fontsize=10,color="white",style="solid",shape="box"];716 -> 5618[label="",style="solid", color="burlywood", weight=9]; 5618 -> 801[label="",style="solid", color="burlywood", weight=3]; 717[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) vuz57) vuz50 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5619[label="vuz57/Pos vuz570",fontsize=10,color="white",style="solid",shape="box"];717 -> 5619[label="",style="solid", color="burlywood", weight=9]; 5619 -> 802[label="",style="solid", color="burlywood", weight=3]; 5620[label="vuz57/Neg vuz570",fontsize=10,color="white",style="solid",shape="box"];717 -> 5620[label="",style="solid", color="burlywood", weight=9]; 5620 -> 803[label="",style="solid", color="burlywood", weight=3]; 718[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) vuz57) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="burlywood",shape="box"];5621[label="vuz57/Pos vuz570",fontsize=10,color="white",style="solid",shape="box"];718 -> 5621[label="",style="solid", color="burlywood", weight=9]; 5621 -> 804[label="",style="solid", color="burlywood", weight=3]; 5622[label="vuz57/Neg vuz570",fontsize=10,color="white",style="solid",shape="box"];718 -> 5622[label="",style="solid", color="burlywood", weight=9]; 5622 -> 805[label="",style="solid", color="burlywood", weight=3]; 719[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) vuz57) vuz50 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5623[label="vuz57/Pos vuz570",fontsize=10,color="white",style="solid",shape="box"];719 -> 5623[label="",style="solid", color="burlywood", weight=9]; 5623 -> 806[label="",style="solid", color="burlywood", weight=3]; 5624[label="vuz57/Neg vuz570",fontsize=10,color="white",style="solid",shape="box"];719 -> 5624[label="",style="solid", color="burlywood", weight=9]; 5624 -> 807[label="",style="solid", color="burlywood", weight=3]; 720 -> 808[label="",style="dashed", color="red", weight=0]; 720[label="primQuotInt (Pos vuz180) (gcd1 (primEqNat vuz2700 vuz5100) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];720 -> 810[label="",style="dashed", color="magenta", weight=3]; 721 -> 808[label="",style="dashed", color="red", weight=0]; 721[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];721 -> 811[label="",style="dashed", color="magenta", weight=3]; 809[label="False",fontsize=16,color="green",shape="box"];808[label="primQuotInt (Pos vuz180) (gcd1 vuz61 (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5625[label="vuz61/False",fontsize=10,color="white",style="solid",shape="box"];808 -> 5625[label="",style="solid", color="burlywood", weight=9]; 5625 -> 812[label="",style="solid", color="burlywood", weight=3]; 5626[label="vuz61/True",fontsize=10,color="white",style="solid",shape="box"];808 -> 5626[label="",style="solid", color="burlywood", weight=9]; 5626 -> 813[label="",style="solid", color="burlywood", weight=3]; 723[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];723 -> 814[label="",style="solid", color="black", weight=3]; 724[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];724 -> 815[label="",style="solid", color="black", weight=3]; 725 -> 723[label="",style="dashed", color="red", weight=0]; 725[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];726 -> 724[label="",style="dashed", color="red", weight=0]; 726[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];818[label="False",fontsize=16,color="green",shape="box"];817[label="primQuotInt (Pos vuz180) (gcd1 vuz62 (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5627[label="vuz62/False",fontsize=10,color="white",style="solid",shape="box"];817 -> 5627[label="",style="solid", color="burlywood", weight=9]; 5627 -> 821[label="",style="solid", color="burlywood", weight=3]; 5628[label="vuz62/True",fontsize=10,color="white",style="solid",shape="box"];817 -> 5628[label="",style="solid", color="burlywood", weight=9]; 5628 -> 822[label="",style="solid", color="burlywood", weight=3]; 728 -> 817[label="",style="dashed", color="red", weight=0]; 728[label="primQuotInt (Pos vuz180) (gcd1 (primEqNat vuz2700 vuz5100) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];728 -> 819[label="",style="dashed", color="magenta", weight=3]; 729 -> 817[label="",style="dashed", color="red", weight=0]; 729[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];729 -> 820[label="",style="dashed", color="magenta", weight=3]; 730[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];730 -> 823[label="",style="solid", color="black", weight=3]; 731[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];731 -> 824[label="",style="solid", color="black", weight=3]; 732 -> 730[label="",style="dashed", color="red", weight=0]; 732[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];733 -> 731[label="",style="dashed", color="red", weight=0]; 733[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];734 -> 825[label="",style="dashed", color="red", weight=0]; 734[label="primQuotInt (Pos vuz180) (gcd1 (primEqNat vuz2700 vuz5200) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];734 -> 827[label="",style="dashed", color="magenta", weight=3]; 735 -> 825[label="",style="dashed", color="red", weight=0]; 735[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];735 -> 828[label="",style="dashed", color="magenta", weight=3]; 826[label="False",fontsize=16,color="green",shape="box"];825[label="primQuotInt (Pos vuz180) (gcd1 vuz63 (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5629[label="vuz63/False",fontsize=10,color="white",style="solid",shape="box"];825 -> 5629[label="",style="solid", color="burlywood", weight=9]; 5629 -> 829[label="",style="solid", color="burlywood", weight=3]; 5630[label="vuz63/True",fontsize=10,color="white",style="solid",shape="box"];825 -> 5630[label="",style="solid", color="burlywood", weight=9]; 5630 -> 830[label="",style="solid", color="burlywood", weight=3]; 737[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];737 -> 831[label="",style="solid", color="black", weight=3]; 738[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];738 -> 832[label="",style="solid", color="black", weight=3]; 739 -> 737[label="",style="dashed", color="red", weight=0]; 739[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];740 -> 738[label="",style="dashed", color="red", weight=0]; 740[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];835[label="False",fontsize=16,color="green",shape="box"];834[label="primQuotInt (Pos vuz180) (gcd1 vuz64 (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5631[label="vuz64/False",fontsize=10,color="white",style="solid",shape="box"];834 -> 5631[label="",style="solid", color="burlywood", weight=9]; 5631 -> 838[label="",style="solid", color="burlywood", weight=3]; 5632[label="vuz64/True",fontsize=10,color="white",style="solid",shape="box"];834 -> 5632[label="",style="solid", color="burlywood", weight=9]; 5632 -> 839[label="",style="solid", color="burlywood", weight=3]; 742 -> 834[label="",style="dashed", color="red", weight=0]; 742[label="primQuotInt (Pos vuz180) (gcd1 (primEqNat vuz2700 vuz5200) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];742 -> 836[label="",style="dashed", color="magenta", weight=3]; 743 -> 834[label="",style="dashed", color="red", weight=0]; 743[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];743 -> 837[label="",style="dashed", color="magenta", weight=3]; 744[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];744 -> 840[label="",style="solid", color="black", weight=3]; 745[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];745 -> 841[label="",style="solid", color="black", weight=3]; 746 -> 744[label="",style="dashed", color="red", weight=0]; 746[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];747 -> 745[label="",style="dashed", color="red", weight=0]; 747[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];748[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) vuz58) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="burlywood",shape="box"];5633[label="vuz58/Pos vuz580",fontsize=10,color="white",style="solid",shape="box"];748 -> 5633[label="",style="solid", color="burlywood", weight=9]; 5633 -> 842[label="",style="solid", color="burlywood", weight=3]; 5634[label="vuz58/Neg vuz580",fontsize=10,color="white",style="solid",shape="box"];748 -> 5634[label="",style="solid", color="burlywood", weight=9]; 5634 -> 843[label="",style="solid", color="burlywood", weight=3]; 749[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) vuz58) vuz54 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5635[label="vuz58/Pos vuz580",fontsize=10,color="white",style="solid",shape="box"];749 -> 5635[label="",style="solid", color="burlywood", weight=9]; 5635 -> 844[label="",style="solid", color="burlywood", weight=3]; 5636[label="vuz58/Neg vuz580",fontsize=10,color="white",style="solid",shape="box"];749 -> 5636[label="",style="solid", color="burlywood", weight=9]; 5636 -> 845[label="",style="solid", color="burlywood", weight=3]; 750[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) vuz58) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="burlywood",shape="box"];5637[label="vuz58/Pos vuz580",fontsize=10,color="white",style="solid",shape="box"];750 -> 5637[label="",style="solid", color="burlywood", weight=9]; 5637 -> 846[label="",style="solid", color="burlywood", weight=3]; 5638[label="vuz58/Neg vuz580",fontsize=10,color="white",style="solid",shape="box"];750 -> 5638[label="",style="solid", color="burlywood", weight=9]; 5638 -> 847[label="",style="solid", color="burlywood", weight=3]; 751[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) vuz58) vuz54 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5639[label="vuz58/Pos vuz580",fontsize=10,color="white",style="solid",shape="box"];751 -> 5639[label="",style="solid", color="burlywood", weight=9]; 5639 -> 848[label="",style="solid", color="burlywood", weight=3]; 5640[label="vuz58/Neg vuz580",fontsize=10,color="white",style="solid",shape="box"];751 -> 5640[label="",style="solid", color="burlywood", weight=9]; 5640 -> 849[label="",style="solid", color="burlywood", weight=3]; 752 -> 850[label="",style="dashed", color="red", weight=0]; 752[label="primQuotInt (Neg vuz180) (gcd1 (primEqNat vuz2700 vuz5500) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];752 -> 852[label="",style="dashed", color="magenta", weight=3]; 753 -> 850[label="",style="dashed", color="red", weight=0]; 753[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];753 -> 853[label="",style="dashed", color="magenta", weight=3]; 851[label="False",fontsize=16,color="green",shape="box"];850[label="primQuotInt (Neg vuz180) (gcd1 vuz65 (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5641[label="vuz65/False",fontsize=10,color="white",style="solid",shape="box"];850 -> 5641[label="",style="solid", color="burlywood", weight=9]; 5641 -> 854[label="",style="solid", color="burlywood", weight=3]; 5642[label="vuz65/True",fontsize=10,color="white",style="solid",shape="box"];850 -> 5642[label="",style="solid", color="burlywood", weight=9]; 5642 -> 855[label="",style="solid", color="burlywood", weight=3]; 755[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];755 -> 856[label="",style="solid", color="black", weight=3]; 756[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];756 -> 857[label="",style="solid", color="black", weight=3]; 757 -> 755[label="",style="dashed", color="red", weight=0]; 757[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];758 -> 756[label="",style="dashed", color="red", weight=0]; 758[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];860[label="False",fontsize=16,color="green",shape="box"];859[label="primQuotInt (Neg vuz180) (gcd1 vuz66 (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5643[label="vuz66/False",fontsize=10,color="white",style="solid",shape="box"];859 -> 5643[label="",style="solid", color="burlywood", weight=9]; 5643 -> 863[label="",style="solid", color="burlywood", weight=3]; 5644[label="vuz66/True",fontsize=10,color="white",style="solid",shape="box"];859 -> 5644[label="",style="solid", color="burlywood", weight=9]; 5644 -> 864[label="",style="solid", color="burlywood", weight=3]; 760 -> 859[label="",style="dashed", color="red", weight=0]; 760[label="primQuotInt (Neg vuz180) (gcd1 (primEqNat vuz2700 vuz5500) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];760 -> 861[label="",style="dashed", color="magenta", weight=3]; 761 -> 859[label="",style="dashed", color="red", weight=0]; 761[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];761 -> 862[label="",style="dashed", color="magenta", weight=3]; 762[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];762 -> 865[label="",style="solid", color="black", weight=3]; 763[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];763 -> 866[label="",style="solid", color="black", weight=3]; 764 -> 762[label="",style="dashed", color="red", weight=0]; 764[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];765 -> 763[label="",style="dashed", color="red", weight=0]; 765[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];766 -> 867[label="",style="dashed", color="red", weight=0]; 766[label="primQuotInt (Neg vuz180) (gcd1 (primEqNat vuz2700 vuz5600) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];766 -> 869[label="",style="dashed", color="magenta", weight=3]; 767 -> 867[label="",style="dashed", color="red", weight=0]; 767[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];767 -> 870[label="",style="dashed", color="magenta", weight=3]; 868[label="False",fontsize=16,color="green",shape="box"];867[label="primQuotInt (Neg vuz180) (gcd1 vuz67 (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5645[label="vuz67/False",fontsize=10,color="white",style="solid",shape="box"];867 -> 5645[label="",style="solid", color="burlywood", weight=9]; 5645 -> 871[label="",style="solid", color="burlywood", weight=3]; 5646[label="vuz67/True",fontsize=10,color="white",style="solid",shape="box"];867 -> 5646[label="",style="solid", color="burlywood", weight=9]; 5646 -> 872[label="",style="solid", color="burlywood", weight=3]; 769[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];769 -> 873[label="",style="solid", color="black", weight=3]; 770[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];770 -> 874[label="",style="solid", color="black", weight=3]; 771 -> 769[label="",style="dashed", color="red", weight=0]; 771[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];772 -> 770[label="",style="dashed", color="red", weight=0]; 772[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];877[label="False",fontsize=16,color="green",shape="box"];876[label="primQuotInt (Neg vuz180) (gcd1 vuz68 (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5647[label="vuz68/False",fontsize=10,color="white",style="solid",shape="box"];876 -> 5647[label="",style="solid", color="burlywood", weight=9]; 5647 -> 880[label="",style="solid", color="burlywood", weight=3]; 5648[label="vuz68/True",fontsize=10,color="white",style="solid",shape="box"];876 -> 5648[label="",style="solid", color="burlywood", weight=9]; 5648 -> 881[label="",style="solid", color="burlywood", weight=3]; 774 -> 876[label="",style="dashed", color="red", weight=0]; 774[label="primQuotInt (Neg vuz180) (gcd1 (primEqNat vuz2700 vuz5600) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];774 -> 878[label="",style="dashed", color="magenta", weight=3]; 775 -> 876[label="",style="dashed", color="red", weight=0]; 775[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];775 -> 879[label="",style="dashed", color="magenta", weight=3]; 776[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];776 -> 882[label="",style="solid", color="black", weight=3]; 777[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];777 -> 883[label="",style="solid", color="black", weight=3]; 778 -> 776[label="",style="dashed", color="red", weight=0]; 778[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];779 -> 777[label="",style="dashed", color="red", weight=0]; 779[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];780[label="Integer vuz30 * signumReal1 (Integer (Pos vuz380)) (primCmpInt (Pos vuz380) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos vuz380)) (primCmpInt (Pos vuz380) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5649[label="vuz380/Succ vuz3800",fontsize=10,color="white",style="solid",shape="box"];780 -> 5649[label="",style="solid", color="burlywood", weight=9]; 5649 -> 884[label="",style="solid", color="burlywood", weight=3]; 5650[label="vuz380/Zero",fontsize=10,color="white",style="solid",shape="box"];780 -> 5650[label="",style="solid", color="burlywood", weight=9]; 5650 -> 885[label="",style="solid", color="burlywood", weight=3]; 781[label="Integer vuz30 * signumReal1 (Integer (Neg vuz380)) (primCmpInt (Neg vuz380) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg vuz380)) (primCmpInt (Neg vuz380) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5651[label="vuz380/Succ vuz3800",fontsize=10,color="white",style="solid",shape="box"];781 -> 5651[label="",style="solid", color="burlywood", weight=9]; 5651 -> 886[label="",style="solid", color="burlywood", weight=3]; 5652[label="vuz380/Zero",fontsize=10,color="white",style="solid",shape="box"];781 -> 5652[label="",style="solid", color="burlywood", weight=9]; 5652 -> 887[label="",style="solid", color="burlywood", weight=3]; 782[label="Pos Zero",fontsize=16,color="green",shape="box"];783[label="vuz30",fontsize=16,color="green",shape="box"];784[label="Pos Zero",fontsize=16,color="green",shape="box"];785[label="vuz30",fontsize=16,color="green",shape="box"];786[label="Integer vuz59 `quot` gcd (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];786 -> 888[label="",style="solid", color="black", weight=3]; 787[label="Integer vuz32 `quot` gcd2 (Integer vuz110 * vuz12 * signum (Integer vuz34) == fromInt (Pos Zero)) (Integer vuz110 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="burlywood",shape="box"];5653[label="vuz12/Integer vuz120",fontsize=10,color="white",style="solid",shape="box"];787 -> 5653[label="",style="solid", color="burlywood", weight=9]; 5653 -> 889[label="",style="solid", color="burlywood", weight=3]; 788 -> 471[label="",style="dashed", color="red", weight=0]; 788[label="primNegInt vuz32",fontsize=16,color="magenta"];788 -> 890[label="",style="dashed", color="magenta", weight=3]; 2375[label="vuz1350",fontsize=16,color="green",shape="box"];2376[label="vuz1360",fontsize=16,color="green",shape="box"];2377[label="signumReal1 (Pos (Succ vuz134)) True",fontsize=16,color="black",shape="box"];2377 -> 2415[label="",style="solid", color="black", weight=3]; 2378[label="signumReal1 (Pos (Succ vuz134)) False",fontsize=16,color="black",shape="triangle"];2378 -> 2416[label="",style="solid", color="black", weight=3]; 2379 -> 2378[label="",style="dashed", color="red", weight=0]; 2379[label="signumReal1 (Pos (Succ vuz134)) False",fontsize=16,color="magenta"];795[label="Neg (Succ Zero)",fontsize=16,color="green",shape="box"];2410[label="vuz1390",fontsize=16,color="green",shape="box"];2411[label="vuz1400",fontsize=16,color="green",shape="box"];2412[label="signumReal1 (Neg (Succ vuz138)) True",fontsize=16,color="black",shape="box"];2412 -> 2449[label="",style="solid", color="black", weight=3]; 2413[label="signumReal1 (Neg (Succ vuz138)) False",fontsize=16,color="black",shape="triangle"];2413 -> 2450[label="",style="solid", color="black", weight=3]; 2414 -> 2413[label="",style="dashed", color="red", weight=0]; 2414[label="signumReal1 (Neg (Succ vuz138)) False",fontsize=16,color="magenta"];800[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) (Pos vuz570)) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="burlywood",shape="box"];5654[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];800 -> 5654[label="",style="solid", color="burlywood", weight=9]; 5654 -> 901[label="",style="solid", color="burlywood", weight=3]; 5655[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];800 -> 5655[label="",style="solid", color="burlywood", weight=9]; 5655 -> 902[label="",style="solid", color="burlywood", weight=3]; 801[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) (Neg vuz570)) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];801 -> 903[label="",style="solid", color="black", weight=3]; 802[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos vuz570)) vuz50 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5656[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];802 -> 5656[label="",style="solid", color="burlywood", weight=9]; 5656 -> 904[label="",style="solid", color="burlywood", weight=3]; 5657[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];802 -> 5657[label="",style="solid", color="burlywood", weight=9]; 5657 -> 905[label="",style="solid", color="burlywood", weight=3]; 803[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg vuz570)) vuz50 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5658[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];803 -> 5658[label="",style="solid", color="burlywood", weight=9]; 5658 -> 906[label="",style="solid", color="burlywood", weight=3]; 5659[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];803 -> 5659[label="",style="solid", color="burlywood", weight=9]; 5659 -> 907[label="",style="solid", color="burlywood", weight=3]; 804[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) (Pos vuz570)) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];804 -> 908[label="",style="solid", color="black", weight=3]; 805[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) (Neg vuz570)) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="burlywood",shape="box"];5660[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];805 -> 5660[label="",style="solid", color="burlywood", weight=9]; 5660 -> 909[label="",style="solid", color="burlywood", weight=3]; 5661[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];805 -> 5661[label="",style="solid", color="burlywood", weight=9]; 5661 -> 910[label="",style="solid", color="burlywood", weight=3]; 806[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos vuz570)) vuz50 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5662[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];806 -> 5662[label="",style="solid", color="burlywood", weight=9]; 5662 -> 911[label="",style="solid", color="burlywood", weight=3]; 5663[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];806 -> 5663[label="",style="solid", color="burlywood", weight=9]; 5663 -> 912[label="",style="solid", color="burlywood", weight=3]; 807[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg vuz570)) vuz50 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5664[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];807 -> 5664[label="",style="solid", color="burlywood", weight=9]; 5664 -> 913[label="",style="solid", color="burlywood", weight=3]; 5665[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];807 -> 5665[label="",style="solid", color="burlywood", weight=9]; 5665 -> 914[label="",style="solid", color="burlywood", weight=3]; 810 -> 547[label="",style="dashed", color="red", weight=0]; 810[label="primEqNat vuz2700 vuz5100",fontsize=16,color="magenta"];810 -> 915[label="",style="dashed", color="magenta", weight=3]; 810 -> 916[label="",style="dashed", color="magenta", weight=3]; 811[label="False",fontsize=16,color="green",shape="box"];812[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];812 -> 917[label="",style="solid", color="black", weight=3]; 813[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];813 -> 918[label="",style="solid", color="black", weight=3]; 814 -> 407[label="",style="dashed", color="red", weight=0]; 814[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];814 -> 919[label="",style="dashed", color="magenta", weight=3]; 815[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="black",shape="triangle"];815 -> 920[label="",style="solid", color="black", weight=3]; 821[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];821 -> 921[label="",style="solid", color="black", weight=3]; 822[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];822 -> 922[label="",style="solid", color="black", weight=3]; 819 -> 547[label="",style="dashed", color="red", weight=0]; 819[label="primEqNat vuz2700 vuz5100",fontsize=16,color="magenta"];819 -> 923[label="",style="dashed", color="magenta", weight=3]; 819 -> 924[label="",style="dashed", color="magenta", weight=3]; 820[label="False",fontsize=16,color="green",shape="box"];823 -> 407[label="",style="dashed", color="red", weight=0]; 823[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];823 -> 925[label="",style="dashed", color="magenta", weight=3]; 824 -> 815[label="",style="dashed", color="red", weight=0]; 824[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];827 -> 547[label="",style="dashed", color="red", weight=0]; 827[label="primEqNat vuz2700 vuz5200",fontsize=16,color="magenta"];827 -> 926[label="",style="dashed", color="magenta", weight=3]; 827 -> 927[label="",style="dashed", color="magenta", weight=3]; 828[label="False",fontsize=16,color="green",shape="box"];829[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];829 -> 928[label="",style="solid", color="black", weight=3]; 830[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];830 -> 929[label="",style="solid", color="black", weight=3]; 831 -> 410[label="",style="dashed", color="red", weight=0]; 831[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];831 -> 930[label="",style="dashed", color="magenta", weight=3]; 832 -> 815[label="",style="dashed", color="red", weight=0]; 832[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];838[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];838 -> 931[label="",style="solid", color="black", weight=3]; 839[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];839 -> 932[label="",style="solid", color="black", weight=3]; 836 -> 547[label="",style="dashed", color="red", weight=0]; 836[label="primEqNat vuz2700 vuz5200",fontsize=16,color="magenta"];836 -> 933[label="",style="dashed", color="magenta", weight=3]; 836 -> 934[label="",style="dashed", color="magenta", weight=3]; 837[label="False",fontsize=16,color="green",shape="box"];840 -> 410[label="",style="dashed", color="red", weight=0]; 840[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];840 -> 935[label="",style="dashed", color="magenta", weight=3]; 841 -> 815[label="",style="dashed", color="red", weight=0]; 841[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];842[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) (Pos vuz580)) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="burlywood",shape="box"];5666[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];842 -> 5666[label="",style="solid", color="burlywood", weight=9]; 5666 -> 936[label="",style="solid", color="burlywood", weight=3]; 5667[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];842 -> 5667[label="",style="solid", color="burlywood", weight=9]; 5667 -> 937[label="",style="solid", color="burlywood", weight=3]; 843[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) (Neg vuz580)) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];843 -> 938[label="",style="solid", color="black", weight=3]; 844[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos vuz580)) vuz54 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5668[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];844 -> 5668[label="",style="solid", color="burlywood", weight=9]; 5668 -> 939[label="",style="solid", color="burlywood", weight=3]; 5669[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];844 -> 5669[label="",style="solid", color="burlywood", weight=9]; 5669 -> 940[label="",style="solid", color="burlywood", weight=3]; 845[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg vuz580)) vuz54 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5670[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];845 -> 5670[label="",style="solid", color="burlywood", weight=9]; 5670 -> 941[label="",style="solid", color="burlywood", weight=3]; 5671[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];845 -> 5671[label="",style="solid", color="burlywood", weight=9]; 5671 -> 942[label="",style="solid", color="burlywood", weight=3]; 846[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) (Pos vuz580)) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];846 -> 943[label="",style="solid", color="black", weight=3]; 847[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) (Neg vuz580)) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="burlywood",shape="box"];5672[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];847 -> 5672[label="",style="solid", color="burlywood", weight=9]; 5672 -> 944[label="",style="solid", color="burlywood", weight=3]; 5673[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];847 -> 5673[label="",style="solid", color="burlywood", weight=9]; 5673 -> 945[label="",style="solid", color="burlywood", weight=3]; 848[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos vuz580)) vuz54 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5674[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];848 -> 5674[label="",style="solid", color="burlywood", weight=9]; 5674 -> 946[label="",style="solid", color="burlywood", weight=3]; 5675[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];848 -> 5675[label="",style="solid", color="burlywood", weight=9]; 5675 -> 947[label="",style="solid", color="burlywood", weight=3]; 849[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg vuz580)) vuz54 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5676[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];849 -> 5676[label="",style="solid", color="burlywood", weight=9]; 5676 -> 948[label="",style="solid", color="burlywood", weight=3]; 5677[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];849 -> 5677[label="",style="solid", color="burlywood", weight=9]; 5677 -> 949[label="",style="solid", color="burlywood", weight=3]; 852 -> 547[label="",style="dashed", color="red", weight=0]; 852[label="primEqNat vuz2700 vuz5500",fontsize=16,color="magenta"];852 -> 950[label="",style="dashed", color="magenta", weight=3]; 852 -> 951[label="",style="dashed", color="magenta", weight=3]; 853[label="False",fontsize=16,color="green",shape="box"];854[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];854 -> 952[label="",style="solid", color="black", weight=3]; 855[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];855 -> 953[label="",style="solid", color="black", weight=3]; 856 -> 413[label="",style="dashed", color="red", weight=0]; 856[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];856 -> 954[label="",style="dashed", color="magenta", weight=3]; 857[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="black",shape="triangle"];857 -> 955[label="",style="solid", color="black", weight=3]; 863[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];863 -> 956[label="",style="solid", color="black", weight=3]; 864[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];864 -> 957[label="",style="solid", color="black", weight=3]; 861 -> 547[label="",style="dashed", color="red", weight=0]; 861[label="primEqNat vuz2700 vuz5500",fontsize=16,color="magenta"];861 -> 958[label="",style="dashed", color="magenta", weight=3]; 861 -> 959[label="",style="dashed", color="magenta", weight=3]; 862[label="False",fontsize=16,color="green",shape="box"];865 -> 413[label="",style="dashed", color="red", weight=0]; 865[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];865 -> 960[label="",style="dashed", color="magenta", weight=3]; 866 -> 857[label="",style="dashed", color="red", weight=0]; 866[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];869 -> 547[label="",style="dashed", color="red", weight=0]; 869[label="primEqNat vuz2700 vuz5600",fontsize=16,color="magenta"];869 -> 961[label="",style="dashed", color="magenta", weight=3]; 869 -> 962[label="",style="dashed", color="magenta", weight=3]; 870[label="False",fontsize=16,color="green",shape="box"];871[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];871 -> 963[label="",style="solid", color="black", weight=3]; 872[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];872 -> 964[label="",style="solid", color="black", weight=3]; 873 -> 416[label="",style="dashed", color="red", weight=0]; 873[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];873 -> 965[label="",style="dashed", color="magenta", weight=3]; 874 -> 857[label="",style="dashed", color="red", weight=0]; 874[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];880[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];880 -> 968[label="",style="solid", color="black", weight=3]; 881[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];881 -> 969[label="",style="solid", color="black", weight=3]; 878 -> 547[label="",style="dashed", color="red", weight=0]; 878[label="primEqNat vuz2700 vuz5600",fontsize=16,color="magenta"];878 -> 966[label="",style="dashed", color="magenta", weight=3]; 878 -> 967[label="",style="dashed", color="magenta", weight=3]; 879[label="False",fontsize=16,color="green",shape="box"];882 -> 416[label="",style="dashed", color="red", weight=0]; 882[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];882 -> 970[label="",style="dashed", color="magenta", weight=3]; 883 -> 857[label="",style="dashed", color="red", weight=0]; 883[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];884[label="Integer vuz30 * signumReal1 (Integer (Pos (Succ vuz3800))) (primCmpInt (Pos (Succ vuz3800)) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos (Succ vuz3800))) (primCmpInt (Pos (Succ vuz3800)) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];884 -> 971[label="",style="solid", color="black", weight=3]; 885[label="Integer vuz30 * signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];885 -> 972[label="",style="solid", color="black", weight=3]; 886[label="Integer vuz30 * signumReal1 (Integer (Neg (Succ vuz3800))) (primCmpInt (Neg (Succ vuz3800)) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg (Succ vuz3800))) (primCmpInt (Neg (Succ vuz3800)) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];886 -> 973[label="",style="solid", color="black", weight=3]; 887[label="Integer vuz30 * signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];887 -> 974[label="",style="solid", color="black", weight=3]; 888[label="Integer vuz59 `quot` gcd3 (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];888 -> 975[label="",style="solid", color="black", weight=3]; 889[label="Integer vuz32 `quot` gcd2 (Integer vuz110 * Integer vuz120 * signum (Integer vuz34) == fromInt (Pos Zero)) (Integer vuz110 * Integer vuz120 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="black",shape="box"];889 -> 976[label="",style="solid", color="black", weight=3]; 890[label="vuz32",fontsize=16,color="green",shape="box"];2415[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5678[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5678[label="",style="solid", color="blue", weight=9]; 5678 -> 2451[label="",style="solid", color="blue", weight=3]; 5679[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5679[label="",style="solid", color="blue", weight=9]; 5679 -> 2452[label="",style="solid", color="blue", weight=3]; 5680[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5680[label="",style="solid", color="blue", weight=9]; 5680 -> 2453[label="",style="solid", color="blue", weight=3]; 5681[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5681[label="",style="solid", color="blue", weight=9]; 5681 -> 2454[label="",style="solid", color="blue", weight=3]; 5682[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5682[label="",style="solid", color="blue", weight=9]; 5682 -> 2455[label="",style="solid", color="blue", weight=3]; 2416[label="signumReal0 (Pos (Succ vuz134)) otherwise",fontsize=16,color="black",shape="box"];2416 -> 2456[label="",style="solid", color="black", weight=3]; 2449[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5683[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5683[label="",style="solid", color="blue", weight=9]; 5683 -> 2498[label="",style="solid", color="blue", weight=3]; 5684[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5684[label="",style="solid", color="blue", weight=9]; 5684 -> 2499[label="",style="solid", color="blue", weight=3]; 5685[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5685[label="",style="solid", color="blue", weight=9]; 5685 -> 2500[label="",style="solid", color="blue", weight=3]; 5686[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5686[label="",style="solid", color="blue", weight=9]; 5686 -> 2501[label="",style="solid", color="blue", weight=3]; 5687[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5687[label="",style="solid", color="blue", weight=9]; 5687 -> 2502[label="",style="solid", color="blue", weight=3]; 2450[label="signumReal0 (Neg (Succ vuz138)) otherwise",fontsize=16,color="black",shape="box"];2450 -> 2503[label="",style="solid", color="black", weight=3]; 901[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) (Pos (Succ vuz5700))) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];901 -> 988[label="",style="solid", color="black", weight=3]; 902[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) (Pos Zero)) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];902 -> 989[label="",style="solid", color="black", weight=3]; 903 -> 1042[label="",style="dashed", color="red", weight=0]; 903[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="magenta"];903 -> 1043[label="",style="dashed", color="magenta", weight=3]; 904[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos (Succ vuz5700))) vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];904 -> 991[label="",style="solid", color="black", weight=3]; 905[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos Zero)) vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];905 -> 992[label="",style="solid", color="black", weight=3]; 906[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg (Succ vuz5700))) vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];906 -> 993[label="",style="solid", color="black", weight=3]; 907[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg Zero)) vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];907 -> 994[label="",style="solid", color="black", weight=3]; 908 -> 1051[label="",style="dashed", color="red", weight=0]; 908[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="magenta"];908 -> 1052[label="",style="dashed", color="magenta", weight=3]; 909[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) (Neg (Succ vuz5700))) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];909 -> 996[label="",style="solid", color="black", weight=3]; 910[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) (Neg Zero)) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];910 -> 997[label="",style="solid", color="black", weight=3]; 911[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos (Succ vuz5700))) vuz50 (Neg Zero))",fontsize=16,color="black",shape="box"];911 -> 998[label="",style="solid", color="black", weight=3]; 912[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos Zero)) vuz50 (Neg Zero))",fontsize=16,color="black",shape="box"];912 -> 999[label="",style="solid", color="black", weight=3]; 913[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg (Succ vuz5700))) vuz50 (Neg Zero))",fontsize=16,color="black",shape="box"];913 -> 1000[label="",style="solid", color="black", weight=3]; 914[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg Zero)) vuz50 (Neg Zero))",fontsize=16,color="black",shape="box"];914 -> 1001[label="",style="solid", color="black", weight=3]; 915[label="vuz5100",fontsize=16,color="green",shape="box"];916[label="vuz2700",fontsize=16,color="green",shape="box"];917 -> 407[label="",style="dashed", color="red", weight=0]; 917[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];917 -> 1002[label="",style="dashed", color="magenta", weight=3]; 918 -> 815[label="",style="dashed", color="red", weight=0]; 918[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];919[label="Pos Zero",fontsize=16,color="green",shape="box"];920[label="error []",fontsize=16,color="red",shape="box"];921 -> 407[label="",style="dashed", color="red", weight=0]; 921[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];921 -> 1003[label="",style="dashed", color="magenta", weight=3]; 922 -> 815[label="",style="dashed", color="red", weight=0]; 922[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];923[label="vuz5100",fontsize=16,color="green",shape="box"];924[label="vuz2700",fontsize=16,color="green",shape="box"];925[label="Neg Zero",fontsize=16,color="green",shape="box"];926[label="vuz5200",fontsize=16,color="green",shape="box"];927[label="vuz2700",fontsize=16,color="green",shape="box"];928 -> 410[label="",style="dashed", color="red", weight=0]; 928[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];928 -> 1004[label="",style="dashed", color="magenta", weight=3]; 929 -> 815[label="",style="dashed", color="red", weight=0]; 929[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];930[label="Pos Zero",fontsize=16,color="green",shape="box"];931 -> 410[label="",style="dashed", color="red", weight=0]; 931[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];931 -> 1005[label="",style="dashed", color="magenta", weight=3]; 932 -> 815[label="",style="dashed", color="red", weight=0]; 932[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];933[label="vuz5200",fontsize=16,color="green",shape="box"];934[label="vuz2700",fontsize=16,color="green",shape="box"];935[label="Neg Zero",fontsize=16,color="green",shape="box"];936[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) (Pos (Succ vuz5800))) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];936 -> 1006[label="",style="solid", color="black", weight=3]; 937[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) (Pos Zero)) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];937 -> 1007[label="",style="solid", color="black", weight=3]; 938 -> 1059[label="",style="dashed", color="red", weight=0]; 938[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="magenta"];938 -> 1060[label="",style="dashed", color="magenta", weight=3]; 939[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos (Succ vuz5800))) vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];939 -> 1009[label="",style="solid", color="black", weight=3]; 940[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos Zero)) vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];940 -> 1010[label="",style="solid", color="black", weight=3]; 941[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg (Succ vuz5800))) vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];941 -> 1011[label="",style="solid", color="black", weight=3]; 942[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg Zero)) vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];942 -> 1012[label="",style="solid", color="black", weight=3]; 943 -> 1068[label="",style="dashed", color="red", weight=0]; 943[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="magenta"];943 -> 1069[label="",style="dashed", color="magenta", weight=3]; 944[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) (Neg (Succ vuz5800))) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];944 -> 1014[label="",style="solid", color="black", weight=3]; 945[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) (Neg Zero)) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];945 -> 1015[label="",style="solid", color="black", weight=3]; 946[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos (Succ vuz5800))) vuz54 (Neg Zero))",fontsize=16,color="black",shape="box"];946 -> 1016[label="",style="solid", color="black", weight=3]; 947[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos Zero)) vuz54 (Neg Zero))",fontsize=16,color="black",shape="box"];947 -> 1017[label="",style="solid", color="black", weight=3]; 948[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg (Succ vuz5800))) vuz54 (Neg Zero))",fontsize=16,color="black",shape="box"];948 -> 1018[label="",style="solid", color="black", weight=3]; 949[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg Zero)) vuz54 (Neg Zero))",fontsize=16,color="black",shape="box"];949 -> 1019[label="",style="solid", color="black", weight=3]; 950[label="vuz5500",fontsize=16,color="green",shape="box"];951[label="vuz2700",fontsize=16,color="green",shape="box"];952 -> 413[label="",style="dashed", color="red", weight=0]; 952[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];952 -> 1020[label="",style="dashed", color="magenta", weight=3]; 953 -> 857[label="",style="dashed", color="red", weight=0]; 953[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];954[label="Pos Zero",fontsize=16,color="green",shape="box"];955[label="error []",fontsize=16,color="red",shape="box"];956 -> 413[label="",style="dashed", color="red", weight=0]; 956[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];956 -> 1021[label="",style="dashed", color="magenta", weight=3]; 957 -> 857[label="",style="dashed", color="red", weight=0]; 957[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];958[label="vuz5500",fontsize=16,color="green",shape="box"];959[label="vuz2700",fontsize=16,color="green",shape="box"];960[label="Neg Zero",fontsize=16,color="green",shape="box"];961[label="vuz5600",fontsize=16,color="green",shape="box"];962[label="vuz2700",fontsize=16,color="green",shape="box"];963 -> 416[label="",style="dashed", color="red", weight=0]; 963[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];963 -> 1022[label="",style="dashed", color="magenta", weight=3]; 964 -> 857[label="",style="dashed", color="red", weight=0]; 964[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];965[label="Pos Zero",fontsize=16,color="green",shape="box"];968 -> 416[label="",style="dashed", color="red", weight=0]; 968[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];968 -> 1023[label="",style="dashed", color="magenta", weight=3]; 969 -> 857[label="",style="dashed", color="red", weight=0]; 969[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];966[label="vuz5600",fontsize=16,color="green",shape="box"];967[label="vuz2700",fontsize=16,color="green",shape="box"];970[label="Neg Zero",fontsize=16,color="green",shape="box"];971[label="Integer vuz30 * signumReal1 (Integer (Pos (Succ vuz3800))) (primCmpNat (Succ vuz3800) Zero == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos (Succ vuz3800))) (primCmpNat (Succ vuz3800) Zero == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];971 -> 1024[label="",style="solid", color="black", weight=3]; 972[label="Integer vuz30 * signumReal1 (Integer (Pos Zero)) (EQ == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos Zero)) (EQ == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];972 -> 1025[label="",style="solid", color="black", weight=3]; 973[label="Integer vuz30 * signumReal1 (Integer (Neg (Succ vuz3800))) (LT == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg (Succ vuz3800))) (LT == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];973 -> 1026[label="",style="solid", color="black", weight=3]; 974[label="Integer vuz30 * signumReal1 (Integer (Neg Zero)) (EQ == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg Zero)) (EQ == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];974 -> 1027[label="",style="solid", color="black", weight=3]; 975 -> 1028[label="",style="dashed", color="red", weight=0]; 975[label="Integer vuz59 `quot` gcd2 (Integer vuz60 == fromInt (Pos Zero)) (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="magenta"];975 -> 1029[label="",style="dashed", color="magenta", weight=3]; 976 -> 1893[label="",style="dashed", color="red", weight=0]; 976[label="Integer vuz32 `quot` gcd2 (Integer (primMulInt vuz110 vuz120) * signum (Integer vuz34) == fromInt (Pos Zero)) (Integer (primMulInt vuz110 vuz120) * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="magenta"];976 -> 1894[label="",style="dashed", color="magenta", weight=3]; 976 -> 1895[label="",style="dashed", color="magenta", weight=3]; 976 -> 1896[label="",style="dashed", color="magenta", weight=3]; 976 -> 1897[label="",style="dashed", color="magenta", weight=3]; 2451[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];2451 -> 2504[label="",style="solid", color="black", weight=3]; 2452 -> 2310[label="",style="dashed", color="red", weight=0]; 2452[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2453[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];2453 -> 2505[label="",style="solid", color="black", weight=3]; 2454[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];2454 -> 2506[label="",style="solid", color="black", weight=3]; 2455 -> 584[label="",style="dashed", color="red", weight=0]; 2455[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2456[label="signumReal0 (Pos (Succ vuz134)) True",fontsize=16,color="black",shape="box"];2456 -> 2507[label="",style="solid", color="black", weight=3]; 2498 -> 2451[label="",style="dashed", color="red", weight=0]; 2498[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2499 -> 2310[label="",style="dashed", color="red", weight=0]; 2499[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2500 -> 2453[label="",style="dashed", color="red", weight=0]; 2500[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2501 -> 2454[label="",style="dashed", color="red", weight=0]; 2501[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2502 -> 584[label="",style="dashed", color="red", weight=0]; 2502[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2503[label="signumReal0 (Neg (Succ vuz138)) True",fontsize=16,color="black",shape="box"];2503 -> 2559[label="",style="solid", color="black", weight=3]; 988 -> 1042[label="",style="dashed", color="red", weight=0]; 988[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqNat vuz4900 vuz5700) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="magenta"];988 -> 1044[label="",style="dashed", color="magenta", weight=3]; 989 -> 1042[label="",style="dashed", color="red", weight=0]; 989[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="magenta"];989 -> 1045[label="",style="dashed", color="magenta", weight=3]; 1043[label="False",fontsize=16,color="green",shape="box"];1042[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 vuz72 vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="burlywood",shape="triangle"];5688[label="vuz72/False",fontsize=10,color="white",style="solid",shape="box"];1042 -> 5688[label="",style="solid", color="burlywood", weight=9]; 5688 -> 1046[label="",style="solid", color="burlywood", weight=3]; 5689[label="vuz72/True",fontsize=10,color="white",style="solid",shape="box"];1042 -> 5689[label="",style="solid", color="burlywood", weight=9]; 5689 -> 1047[label="",style="solid", color="burlywood", weight=3]; 991[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos Zero))",fontsize=16,color="black",shape="triangle"];991 -> 1048[label="",style="solid", color="black", weight=3]; 992[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Pos Zero))",fontsize=16,color="black",shape="triangle"];992 -> 1049[label="",style="solid", color="black", weight=3]; 993 -> 991[label="",style="dashed", color="red", weight=0]; 993[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos Zero))",fontsize=16,color="magenta"];994 -> 992[label="",style="dashed", color="red", weight=0]; 994[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Pos Zero))",fontsize=16,color="magenta"];1052[label="False",fontsize=16,color="green",shape="box"];1051[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 vuz73 vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="burlywood",shape="triangle"];5690[label="vuz73/False",fontsize=10,color="white",style="solid",shape="box"];1051 -> 5690[label="",style="solid", color="burlywood", weight=9]; 5690 -> 1055[label="",style="solid", color="burlywood", weight=3]; 5691[label="vuz73/True",fontsize=10,color="white",style="solid",shape="box"];1051 -> 5691[label="",style="solid", color="burlywood", weight=9]; 5691 -> 1056[label="",style="solid", color="burlywood", weight=3]; 996 -> 1051[label="",style="dashed", color="red", weight=0]; 996[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqNat vuz4900 vuz5700) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="magenta"];996 -> 1053[label="",style="dashed", color="magenta", weight=3]; 997 -> 1051[label="",style="dashed", color="red", weight=0]; 997[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="magenta"];997 -> 1054[label="",style="dashed", color="magenta", weight=3]; 998[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg Zero))",fontsize=16,color="black",shape="triangle"];998 -> 1057[label="",style="solid", color="black", weight=3]; 999[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Neg Zero))",fontsize=16,color="black",shape="triangle"];999 -> 1058[label="",style="solid", color="black", weight=3]; 1000 -> 998[label="",style="dashed", color="red", weight=0]; 1000[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg Zero))",fontsize=16,color="magenta"];1001 -> 999[label="",style="dashed", color="red", weight=0]; 1001[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Neg Zero))",fontsize=16,color="magenta"];1002[label="Pos (Succ vuz2700)",fontsize=16,color="green",shape="box"];1003[label="Neg (Succ vuz2700)",fontsize=16,color="green",shape="box"];1004[label="Pos (Succ vuz2700)",fontsize=16,color="green",shape="box"];1005[label="Neg (Succ vuz2700)",fontsize=16,color="green",shape="box"];1006 -> 1059[label="",style="dashed", color="red", weight=0]; 1006[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqNat vuz5300 vuz5800) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="magenta"];1006 -> 1061[label="",style="dashed", color="magenta", weight=3]; 1007 -> 1059[label="",style="dashed", color="red", weight=0]; 1007[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="magenta"];1007 -> 1062[label="",style="dashed", color="magenta", weight=3]; 1060[label="False",fontsize=16,color="green",shape="box"];1059[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 vuz74 vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="burlywood",shape="triangle"];5692[label="vuz74/False",fontsize=10,color="white",style="solid",shape="box"];1059 -> 5692[label="",style="solid", color="burlywood", weight=9]; 5692 -> 1063[label="",style="solid", color="burlywood", weight=3]; 5693[label="vuz74/True",fontsize=10,color="white",style="solid",shape="box"];1059 -> 5693[label="",style="solid", color="burlywood", weight=9]; 5693 -> 1064[label="",style="solid", color="burlywood", weight=3]; 1009[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos Zero))",fontsize=16,color="black",shape="triangle"];1009 -> 1065[label="",style="solid", color="black", weight=3]; 1010[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Pos Zero))",fontsize=16,color="black",shape="triangle"];1010 -> 1066[label="",style="solid", color="black", weight=3]; 1011 -> 1009[label="",style="dashed", color="red", weight=0]; 1011[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos Zero))",fontsize=16,color="magenta"];1012 -> 1010[label="",style="dashed", color="red", weight=0]; 1012[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Pos Zero))",fontsize=16,color="magenta"];1069[label="False",fontsize=16,color="green",shape="box"];1068[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 vuz75 vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="burlywood",shape="triangle"];5694[label="vuz75/False",fontsize=10,color="white",style="solid",shape="box"];1068 -> 5694[label="",style="solid", color="burlywood", weight=9]; 5694 -> 1072[label="",style="solid", color="burlywood", weight=3]; 5695[label="vuz75/True",fontsize=10,color="white",style="solid",shape="box"];1068 -> 5695[label="",style="solid", color="burlywood", weight=9]; 5695 -> 1073[label="",style="solid", color="burlywood", weight=3]; 1014 -> 1068[label="",style="dashed", color="red", weight=0]; 1014[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqNat vuz5300 vuz5800) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="magenta"];1014 -> 1070[label="",style="dashed", color="magenta", weight=3]; 1015 -> 1068[label="",style="dashed", color="red", weight=0]; 1015[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="magenta"];1015 -> 1071[label="",style="dashed", color="magenta", weight=3]; 1016[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg Zero))",fontsize=16,color="black",shape="triangle"];1016 -> 1074[label="",style="solid", color="black", weight=3]; 1017[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Neg Zero))",fontsize=16,color="black",shape="triangle"];1017 -> 1075[label="",style="solid", color="black", weight=3]; 1018 -> 1016[label="",style="dashed", color="red", weight=0]; 1018[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg Zero))",fontsize=16,color="magenta"];1019 -> 1017[label="",style="dashed", color="red", weight=0]; 1019[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Neg Zero))",fontsize=16,color="magenta"];1020[label="Pos (Succ vuz2700)",fontsize=16,color="green",shape="box"];1021[label="Neg (Succ vuz2700)",fontsize=16,color="green",shape="box"];1022[label="Pos (Succ vuz2700)",fontsize=16,color="green",shape="box"];1023[label="Neg (Succ vuz2700)",fontsize=16,color="green",shape="box"];1024[label="Integer vuz30 * signumReal1 (Integer (Pos (Succ vuz3800))) (GT == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos (Succ vuz3800))) (GT == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1024 -> 1076[label="",style="solid", color="black", weight=3]; 1025[label="Integer vuz30 * signumReal1 (Integer (Pos Zero)) False `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos Zero)) False) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1025 -> 1077[label="",style="solid", color="black", weight=3]; 1026[label="Integer vuz30 * signumReal1 (Integer (Neg (Succ vuz3800))) False `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg (Succ vuz3800))) False) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1026 -> 1078[label="",style="solid", color="black", weight=3]; 1027[label="Integer vuz30 * signumReal1 (Integer (Neg Zero)) False `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg Zero)) False) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1027 -> 1079[label="",style="solid", color="black", weight=3]; 1029 -> 331[label="",style="dashed", color="red", weight=0]; 1029[label="Integer vuz60 == fromInt (Pos Zero)",fontsize=16,color="magenta"];1029 -> 1080[label="",style="dashed", color="magenta", weight=3]; 1028[label="Integer vuz59 `quot` gcd2 vuz69 (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="triangle"];5696[label="vuz69/False",fontsize=10,color="white",style="solid",shape="box"];1028 -> 5696[label="",style="solid", color="burlywood", weight=9]; 5696 -> 1081[label="",style="solid", color="burlywood", weight=3]; 5697[label="vuz69/True",fontsize=10,color="white",style="solid",shape="box"];1028 -> 5697[label="",style="solid", color="burlywood", weight=9]; 5697 -> 1082[label="",style="solid", color="burlywood", weight=3]; 1894[label="signum (Integer vuz34)",fontsize=16,color="black",shape="triangle"];1894 -> 1966[label="",style="solid", color="black", weight=3]; 1895 -> 25[label="",style="dashed", color="red", weight=0]; 1895[label="primMulInt vuz110 vuz120",fontsize=16,color="magenta"];1895 -> 1967[label="",style="dashed", color="magenta", weight=3]; 1895 -> 1968[label="",style="dashed", color="magenta", weight=3]; 1896 -> 25[label="",style="dashed", color="red", weight=0]; 1896[label="primMulInt vuz110 vuz120",fontsize=16,color="magenta"];1896 -> 1969[label="",style="dashed", color="magenta", weight=3]; 1896 -> 1970[label="",style="dashed", color="magenta", weight=3]; 1897 -> 1894[label="",style="dashed", color="red", weight=0]; 1897[label="signum (Integer vuz34)",fontsize=16,color="magenta"];1893[label="Integer vuz32 `quot` gcd2 (Integer vuz71 * vuz104 == fromInt (Pos Zero)) (Integer vuz70 * vuz103) (Integer vuz32)",fontsize=16,color="burlywood",shape="triangle"];5698[label="vuz104/Integer vuz1040",fontsize=10,color="white",style="solid",shape="box"];1893 -> 5698[label="",style="solid", color="burlywood", weight=9]; 5698 -> 1971[label="",style="solid", color="burlywood", weight=3]; 2504[label="primIntToFloat (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];2504 -> 2560[label="",style="solid", color="black", weight=3]; 2310[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];2310 -> 2349[label="",style="solid", color="black", weight=3]; 2505[label="primIntToDouble (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];2505 -> 2561[label="",style="solid", color="black", weight=3]; 2506[label="intToRatio (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];2506 -> 2562[label="",style="solid", color="black", weight=3]; 2507[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5699[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5699[label="",style="solid", color="blue", weight=9]; 5699 -> 2563[label="",style="solid", color="blue", weight=3]; 5700[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5700[label="",style="solid", color="blue", weight=9]; 5700 -> 2564[label="",style="solid", color="blue", weight=3]; 5701[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5701[label="",style="solid", color="blue", weight=9]; 5701 -> 2565[label="",style="solid", color="blue", weight=3]; 5702[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5702[label="",style="solid", color="blue", weight=9]; 5702 -> 2566[label="",style="solid", color="blue", weight=3]; 5703[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5703[label="",style="solid", color="blue", weight=9]; 5703 -> 2567[label="",style="solid", color="blue", weight=3]; 2559[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5704[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5704[label="",style="solid", color="blue", weight=9]; 5704 -> 2600[label="",style="solid", color="blue", weight=3]; 5705[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5705[label="",style="solid", color="blue", weight=9]; 5705 -> 2601[label="",style="solid", color="blue", weight=3]; 5706[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5706[label="",style="solid", color="blue", weight=9]; 5706 -> 2602[label="",style="solid", color="blue", weight=3]; 5707[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5707[label="",style="solid", color="blue", weight=9]; 5707 -> 2603[label="",style="solid", color="blue", weight=3]; 5708[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5708[label="",style="solid", color="blue", weight=9]; 5708 -> 2604[label="",style="solid", color="blue", weight=3]; 1044 -> 547[label="",style="dashed", color="red", weight=0]; 1044[label="primEqNat vuz4900 vuz5700",fontsize=16,color="magenta"];1044 -> 1099[label="",style="dashed", color="magenta", weight=3]; 1044 -> 1100[label="",style="dashed", color="magenta", weight=3]; 1045[label="False",fontsize=16,color="green",shape="box"];1046[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];1046 -> 1101[label="",style="solid", color="black", weight=3]; 1047[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];1047 -> 1102[label="",style="solid", color="black", weight=3]; 1048[label="primQuotInt (Pos vuz180) (gcd0Gcd'0 vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];1048 -> 1103[label="",style="solid", color="black", weight=3]; 1049[label="primQuotInt (Pos vuz180) vuz50",fontsize=16,color="burlywood",shape="triangle"];5709[label="vuz50/Pos vuz500",fontsize=10,color="white",style="solid",shape="box"];1049 -> 5709[label="",style="solid", color="burlywood", weight=9]; 5709 -> 1104[label="",style="solid", color="burlywood", weight=3]; 5710[label="vuz50/Neg vuz500",fontsize=10,color="white",style="solid",shape="box"];1049 -> 5710[label="",style="solid", color="burlywood", weight=9]; 5710 -> 1105[label="",style="solid", color="burlywood", weight=3]; 1055[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];1055 -> 1106[label="",style="solid", color="black", weight=3]; 1056[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];1056 -> 1107[label="",style="solid", color="black", weight=3]; 1053 -> 547[label="",style="dashed", color="red", weight=0]; 1053[label="primEqNat vuz4900 vuz5700",fontsize=16,color="magenta"];1053 -> 1108[label="",style="dashed", color="magenta", weight=3]; 1053 -> 1109[label="",style="dashed", color="magenta", weight=3]; 1054[label="False",fontsize=16,color="green",shape="box"];1057 -> 1049[label="",style="dashed", color="red", weight=0]; 1057[label="primQuotInt (Pos vuz180) (gcd0Gcd'0 vuz50 (Neg Zero))",fontsize=16,color="magenta"];1057 -> 1110[label="",style="dashed", color="magenta", weight=3]; 1058 -> 1049[label="",style="dashed", color="red", weight=0]; 1058[label="primQuotInt (Pos vuz180) vuz50",fontsize=16,color="magenta"];1061 -> 547[label="",style="dashed", color="red", weight=0]; 1061[label="primEqNat vuz5300 vuz5800",fontsize=16,color="magenta"];1061 -> 1111[label="",style="dashed", color="magenta", weight=3]; 1061 -> 1112[label="",style="dashed", color="magenta", weight=3]; 1062[label="False",fontsize=16,color="green",shape="box"];1063[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];1063 -> 1113[label="",style="solid", color="black", weight=3]; 1064[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];1064 -> 1114[label="",style="solid", color="black", weight=3]; 1065[label="primQuotInt (Neg vuz180) (gcd0Gcd'0 vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];1065 -> 1115[label="",style="solid", color="black", weight=3]; 1066[label="primQuotInt (Neg vuz180) vuz54",fontsize=16,color="burlywood",shape="triangle"];5711[label="vuz54/Pos vuz540",fontsize=10,color="white",style="solid",shape="box"];1066 -> 5711[label="",style="solid", color="burlywood", weight=9]; 5711 -> 1116[label="",style="solid", color="burlywood", weight=3]; 5712[label="vuz54/Neg vuz540",fontsize=10,color="white",style="solid",shape="box"];1066 -> 5712[label="",style="solid", color="burlywood", weight=9]; 5712 -> 1117[label="",style="solid", color="burlywood", weight=3]; 1072[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];1072 -> 1120[label="",style="solid", color="black", weight=3]; 1073[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];1073 -> 1121[label="",style="solid", color="black", weight=3]; 1070 -> 547[label="",style="dashed", color="red", weight=0]; 1070[label="primEqNat vuz5300 vuz5800",fontsize=16,color="magenta"];1070 -> 1118[label="",style="dashed", color="magenta", weight=3]; 1070 -> 1119[label="",style="dashed", color="magenta", weight=3]; 1071[label="False",fontsize=16,color="green",shape="box"];1074 -> 1066[label="",style="dashed", color="red", weight=0]; 1074[label="primQuotInt (Neg vuz180) (gcd0Gcd'0 vuz54 (Neg Zero))",fontsize=16,color="magenta"];1074 -> 1122[label="",style="dashed", color="magenta", weight=3]; 1075 -> 1066[label="",style="dashed", color="red", weight=0]; 1075[label="primQuotInt (Neg vuz180) vuz54",fontsize=16,color="magenta"];1076[label="Integer vuz30 * signumReal1 (Integer (Pos (Succ vuz3800))) True `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos (Succ vuz3800))) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1076 -> 1123[label="",style="solid", color="black", weight=3]; 1077[label="Integer vuz30 * signumReal0 (Integer (Pos Zero)) otherwise `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Pos Zero)) otherwise) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1077 -> 1124[label="",style="solid", color="black", weight=3]; 1078[label="Integer vuz30 * signumReal0 (Integer (Neg (Succ vuz3800))) otherwise `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Neg (Succ vuz3800))) otherwise) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1078 -> 1125[label="",style="solid", color="black", weight=3]; 1079[label="Integer vuz30 * signumReal0 (Integer (Neg Zero)) otherwise `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Neg Zero)) otherwise) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1079 -> 1126[label="",style="solid", color="black", weight=3]; 1080[label="vuz60",fontsize=16,color="green",shape="box"];1081[label="Integer vuz59 `quot` gcd2 False (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1081 -> 1127[label="",style="solid", color="black", weight=3]; 1082[label="Integer vuz59 `quot` gcd2 True (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1082 -> 1128[label="",style="solid", color="black", weight=3]; 1966[label="signumReal (Integer vuz34)",fontsize=16,color="black",shape="box"];1966 -> 1987[label="",style="solid", color="black", weight=3]; 1967[label="vuz120",fontsize=16,color="green",shape="box"];1968[label="vuz110",fontsize=16,color="green",shape="box"];1969[label="vuz120",fontsize=16,color="green",shape="box"];1970[label="vuz110",fontsize=16,color="green",shape="box"];1971[label="Integer vuz32 `quot` gcd2 (Integer vuz71 * Integer vuz1040 == fromInt (Pos Zero)) (Integer vuz70 * vuz103) (Integer vuz32)",fontsize=16,color="black",shape="box"];1971 -> 1988[label="",style="solid", color="black", weight=3]; 2560[label="Float (Pos (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2349[label="Integer (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2561[label="Double (Pos (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2562[label="fromInt (Pos (Succ Zero)) :% fromInt (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2562 -> 2605[label="",style="dashed", color="green", weight=3]; 2562 -> 2606[label="",style="dashed", color="green", weight=3]; 2563[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];2563 -> 2607[label="",style="solid", color="black", weight=3]; 2564 -> 2387[label="",style="dashed", color="red", weight=0]; 2564[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2565[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];2565 -> 2608[label="",style="solid", color="black", weight=3]; 2566[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];2566 -> 2609[label="",style="solid", color="black", weight=3]; 2567 -> 711[label="",style="dashed", color="red", weight=0]; 2567[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2600 -> 2563[label="",style="dashed", color="red", weight=0]; 2600[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2601 -> 2387[label="",style="dashed", color="red", weight=0]; 2601[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2602 -> 2565[label="",style="dashed", color="red", weight=0]; 2602[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2603 -> 2566[label="",style="dashed", color="red", weight=0]; 2603[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2604 -> 711[label="",style="dashed", color="red", weight=0]; 2604[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];1099[label="vuz5700",fontsize=16,color="green",shape="box"];1100[label="vuz4900",fontsize=16,color="green",shape="box"];1101 -> 1049[label="",style="dashed", color="red", weight=0]; 1101[label="primQuotInt (Pos vuz180) (gcd0Gcd'0 vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="magenta"];1101 -> 1141[label="",style="dashed", color="magenta", weight=3]; 1102 -> 1049[label="",style="dashed", color="red", weight=0]; 1102[label="primQuotInt (Pos vuz180) vuz50",fontsize=16,color="magenta"];1103 -> 1049[label="",style="dashed", color="red", weight=0]; 1103[label="primQuotInt (Pos vuz180) (gcd0Gcd' (Pos Zero) (vuz50 `rem` Pos Zero))",fontsize=16,color="magenta"];1103 -> 1142[label="",style="dashed", color="magenta", weight=3]; 1104[label="primQuotInt (Pos vuz180) (Pos vuz500)",fontsize=16,color="burlywood",shape="box"];5713[label="vuz500/Succ vuz5000",fontsize=10,color="white",style="solid",shape="box"];1104 -> 5713[label="",style="solid", color="burlywood", weight=9]; 5713 -> 1143[label="",style="solid", color="burlywood", weight=3]; 5714[label="vuz500/Zero",fontsize=10,color="white",style="solid",shape="box"];1104 -> 5714[label="",style="solid", color="burlywood", weight=9]; 5714 -> 1144[label="",style="solid", color="burlywood", weight=3]; 1105[label="primQuotInt (Pos vuz180) (Neg vuz500)",fontsize=16,color="burlywood",shape="box"];5715[label="vuz500/Succ vuz5000",fontsize=10,color="white",style="solid",shape="box"];1105 -> 5715[label="",style="solid", color="burlywood", weight=9]; 5715 -> 1145[label="",style="solid", color="burlywood", weight=3]; 5716[label="vuz500/Zero",fontsize=10,color="white",style="solid",shape="box"];1105 -> 5716[label="",style="solid", color="burlywood", weight=9]; 5716 -> 1146[label="",style="solid", color="burlywood", weight=3]; 1106 -> 1049[label="",style="dashed", color="red", weight=0]; 1106[label="primQuotInt (Pos vuz180) (gcd0Gcd'0 vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="magenta"];1106 -> 1147[label="",style="dashed", color="magenta", weight=3]; 1107 -> 1049[label="",style="dashed", color="red", weight=0]; 1107[label="primQuotInt (Pos vuz180) vuz50",fontsize=16,color="magenta"];1108[label="vuz5700",fontsize=16,color="green",shape="box"];1109[label="vuz4900",fontsize=16,color="green",shape="box"];1110 -> 2055[label="",style="dashed", color="red", weight=0]; 1110[label="gcd0Gcd'0 vuz50 (Neg Zero)",fontsize=16,color="magenta"];1110 -> 2056[label="",style="dashed", color="magenta", weight=3]; 1110 -> 2057[label="",style="dashed", color="magenta", weight=3]; 1111[label="vuz5800",fontsize=16,color="green",shape="box"];1112[label="vuz5300",fontsize=16,color="green",shape="box"];1113 -> 1066[label="",style="dashed", color="red", weight=0]; 1113[label="primQuotInt (Neg vuz180) (gcd0Gcd'0 vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="magenta"];1113 -> 1149[label="",style="dashed", color="magenta", weight=3]; 1114 -> 1066[label="",style="dashed", color="red", weight=0]; 1114[label="primQuotInt (Neg vuz180) vuz54",fontsize=16,color="magenta"];1115 -> 1066[label="",style="dashed", color="red", weight=0]; 1115[label="primQuotInt (Neg vuz180) (gcd0Gcd' (Pos Zero) (vuz54 `rem` Pos Zero))",fontsize=16,color="magenta"];1115 -> 1150[label="",style="dashed", color="magenta", weight=3]; 1116[label="primQuotInt (Neg vuz180) (Pos vuz540)",fontsize=16,color="burlywood",shape="box"];5717[label="vuz540/Succ vuz5400",fontsize=10,color="white",style="solid",shape="box"];1116 -> 5717[label="",style="solid", color="burlywood", weight=9]; 5717 -> 1151[label="",style="solid", color="burlywood", weight=3]; 5718[label="vuz540/Zero",fontsize=10,color="white",style="solid",shape="box"];1116 -> 5718[label="",style="solid", color="burlywood", weight=9]; 5718 -> 1152[label="",style="solid", color="burlywood", weight=3]; 1117[label="primQuotInt (Neg vuz180) (Neg vuz540)",fontsize=16,color="burlywood",shape="box"];5719[label="vuz540/Succ vuz5400",fontsize=10,color="white",style="solid",shape="box"];1117 -> 5719[label="",style="solid", color="burlywood", weight=9]; 5719 -> 1153[label="",style="solid", color="burlywood", weight=3]; 5720[label="vuz540/Zero",fontsize=10,color="white",style="solid",shape="box"];1117 -> 5720[label="",style="solid", color="burlywood", weight=9]; 5720 -> 1154[label="",style="solid", color="burlywood", weight=3]; 1120 -> 1066[label="",style="dashed", color="red", weight=0]; 1120[label="primQuotInt (Neg vuz180) (gcd0Gcd'0 vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="magenta"];1120 -> 1155[label="",style="dashed", color="magenta", weight=3]; 1121 -> 1066[label="",style="dashed", color="red", weight=0]; 1121[label="primQuotInt (Neg vuz180) vuz54",fontsize=16,color="magenta"];1118[label="vuz5800",fontsize=16,color="green",shape="box"];1119[label="vuz5300",fontsize=16,color="green",shape="box"];1122 -> 2055[label="",style="dashed", color="red", weight=0]; 1122[label="gcd0Gcd'0 vuz54 (Neg Zero)",fontsize=16,color="magenta"];1122 -> 2058[label="",style="dashed", color="magenta", weight=3]; 1122 -> 2059[label="",style="dashed", color="magenta", weight=3]; 1123[label="Integer vuz30 * fromInt (Pos (Succ Zero)) `quot` reduce2D (Integer vuz31 * fromInt (Pos (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1123 -> 1157[label="",style="solid", color="black", weight=3]; 1124[label="Integer vuz30 * signumReal0 (Integer (Pos Zero)) True `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Pos Zero)) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1124 -> 1158[label="",style="solid", color="black", weight=3]; 1125[label="Integer vuz30 * signumReal0 (Integer (Neg (Succ vuz3800))) True `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Neg (Succ vuz3800))) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1125 -> 1159[label="",style="solid", color="black", weight=3]; 1126[label="Integer vuz30 * signumReal0 (Integer (Neg Zero)) True `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Neg Zero)) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1126 -> 1160[label="",style="solid", color="black", weight=3]; 1127[label="Integer vuz59 `quot` gcd0 (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1127 -> 1161[label="",style="solid", color="black", weight=3]; 1128[label="Integer vuz59 `quot` gcd1 (abs (Integer vuz37) == fromInt (Pos Zero)) (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1128 -> 1162[label="",style="solid", color="black", weight=3]; 1987[label="signumReal3 (Integer vuz34)",fontsize=16,color="black",shape="box"];1987 -> 2010[label="",style="solid", color="black", weight=3]; 1988 -> 2011[label="",style="dashed", color="red", weight=0]; 1988[label="Integer vuz32 `quot` gcd2 (Integer (primMulInt vuz71 vuz1040) == fromInt (Pos Zero)) (Integer (primMulInt vuz71 vuz1040)) (Integer vuz32)",fontsize=16,color="magenta"];1988 -> 2012[label="",style="dashed", color="magenta", weight=3]; 1988 -> 2013[label="",style="dashed", color="magenta", weight=3]; 2605[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5721[label="fromInt :: Int -> Integer",fontsize=10,color="white",style="solid",shape="box"];2605 -> 5721[label="",style="solid", color="blue", weight=9]; 5721 -> 2644[label="",style="solid", color="blue", weight=3]; 5722[label="fromInt :: Int -> Int",fontsize=10,color="white",style="solid",shape="box"];2605 -> 5722[label="",style="solid", color="blue", weight=9]; 5722 -> 2645[label="",style="solid", color="blue", weight=3]; 2606[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5723[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2606 -> 5723[label="",style="solid", color="blue", weight=9]; 5723 -> 2646[label="",style="solid", color="blue", weight=3]; 5724[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2606 -> 5724[label="",style="solid", color="blue", weight=9]; 5724 -> 2647[label="",style="solid", color="blue", weight=3]; 2607[label="primIntToFloat (Neg (Succ Zero))",fontsize=16,color="black",shape="box"];2607 -> 2648[label="",style="solid", color="black", weight=3]; 2387[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];2387 -> 2424[label="",style="solid", color="black", weight=3]; 2608[label="primIntToDouble (Neg (Succ Zero))",fontsize=16,color="black",shape="box"];2608 -> 2649[label="",style="solid", color="black", weight=3]; 2609[label="intToRatio (Neg (Succ Zero))",fontsize=16,color="black",shape="box"];2609 -> 2650[label="",style="solid", color="black", weight=3]; 1141 -> 2055[label="",style="dashed", color="red", weight=0]; 1141[label="gcd0Gcd'0 vuz50 (Pos (Succ vuz4900))",fontsize=16,color="magenta"];1141 -> 2060[label="",style="dashed", color="magenta", weight=3]; 1141 -> 2061[label="",style="dashed", color="magenta", weight=3]; 1142[label="gcd0Gcd' (Pos Zero) (vuz50 `rem` Pos Zero)",fontsize=16,color="black",shape="triangle"];1142 -> 1174[label="",style="solid", color="black", weight=3]; 1143[label="primQuotInt (Pos vuz180) (Pos (Succ vuz5000))",fontsize=16,color="black",shape="box"];1143 -> 1175[label="",style="solid", color="black", weight=3]; 1144[label="primQuotInt (Pos vuz180) (Pos Zero)",fontsize=16,color="black",shape="box"];1144 -> 1176[label="",style="solid", color="black", weight=3]; 1145[label="primQuotInt (Pos vuz180) (Neg (Succ vuz5000))",fontsize=16,color="black",shape="box"];1145 -> 1177[label="",style="solid", color="black", weight=3]; 1146[label="primQuotInt (Pos vuz180) (Neg Zero)",fontsize=16,color="black",shape="box"];1146 -> 1178[label="",style="solid", color="black", weight=3]; 1147 -> 2055[label="",style="dashed", color="red", weight=0]; 1147[label="gcd0Gcd'0 vuz50 (Neg (Succ vuz4900))",fontsize=16,color="magenta"];1147 -> 2062[label="",style="dashed", color="magenta", weight=3]; 1147 -> 2063[label="",style="dashed", color="magenta", weight=3]; 2056[label="vuz50",fontsize=16,color="green",shape="box"];2057[label="Neg Zero",fontsize=16,color="green",shape="box"];2055[label="gcd0Gcd'0 vuz90 vuz116",fontsize=16,color="black",shape="triangle"];2055 -> 2075[label="",style="solid", color="black", weight=3]; 1149 -> 2055[label="",style="dashed", color="red", weight=0]; 1149[label="gcd0Gcd'0 vuz54 (Pos (Succ vuz5300))",fontsize=16,color="magenta"];1149 -> 2064[label="",style="dashed", color="magenta", weight=3]; 1149 -> 2065[label="",style="dashed", color="magenta", weight=3]; 1150 -> 1142[label="",style="dashed", color="red", weight=0]; 1150[label="gcd0Gcd' (Pos Zero) (vuz54 `rem` Pos Zero)",fontsize=16,color="magenta"];1150 -> 1183[label="",style="dashed", color="magenta", weight=3]; 1151[label="primQuotInt (Neg vuz180) (Pos (Succ vuz5400))",fontsize=16,color="black",shape="box"];1151 -> 1184[label="",style="solid", color="black", weight=3]; 1152[label="primQuotInt (Neg vuz180) (Pos Zero)",fontsize=16,color="black",shape="box"];1152 -> 1185[label="",style="solid", color="black", weight=3]; 1153[label="primQuotInt (Neg vuz180) (Neg (Succ vuz5400))",fontsize=16,color="black",shape="box"];1153 -> 1186[label="",style="solid", color="black", weight=3]; 1154[label="primQuotInt (Neg vuz180) (Neg Zero)",fontsize=16,color="black",shape="box"];1154 -> 1187[label="",style="solid", color="black", weight=3]; 1155 -> 2055[label="",style="dashed", color="red", weight=0]; 1155[label="gcd0Gcd'0 vuz54 (Neg (Succ vuz5300))",fontsize=16,color="magenta"];1155 -> 2066[label="",style="dashed", color="magenta", weight=3]; 1155 -> 2067[label="",style="dashed", color="magenta", weight=3]; 2058[label="vuz54",fontsize=16,color="green",shape="box"];2059[label="Neg Zero",fontsize=16,color="green",shape="box"];1157[label="Integer vuz30 * Integer (Pos (Succ Zero)) `quot` reduce2D (Integer vuz31 * Integer (Pos (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1157 -> 1190[label="",style="solid", color="black", weight=3]; 1158[label="Integer vuz30 * fromInt (Neg (Succ Zero)) `quot` reduce2D (Integer vuz31 * fromInt (Neg (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];1158 -> 1191[label="",style="solid", color="black", weight=3]; 1159 -> 1158[label="",style="dashed", color="red", weight=0]; 1159[label="Integer vuz30 * fromInt (Neg (Succ Zero)) `quot` reduce2D (Integer vuz31 * fromInt (Neg (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="magenta"];1160 -> 1158[label="",style="dashed", color="red", weight=0]; 1160[label="Integer vuz30 * fromInt (Neg (Succ Zero)) `quot` reduce2D (Integer vuz31 * fromInt (Neg (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="magenta"];1161[label="Integer vuz59 `quot` gcd0Gcd' (abs (Integer vuz60)) (abs (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1161 -> 1192[label="",style="solid", color="black", weight=3]; 1162[label="Integer vuz59 `quot` gcd1 (absReal (Integer vuz37) == fromInt (Pos Zero)) (Integer vuz60) (absReal (Integer vuz37))",fontsize=16,color="black",shape="box"];1162 -> 1193[label="",style="solid", color="black", weight=3]; 2010 -> 2014[label="",style="dashed", color="red", weight=0]; 2010[label="signumReal2 (Integer vuz34) (Integer vuz34 == fromInt (Pos Zero))",fontsize=16,color="magenta"];2010 -> 2015[label="",style="dashed", color="magenta", weight=3]; 2012 -> 25[label="",style="dashed", color="red", weight=0]; 2012[label="primMulInt vuz71 vuz1040",fontsize=16,color="magenta"];2012 -> 2016[label="",style="dashed", color="magenta", weight=3]; 2012 -> 2017[label="",style="dashed", color="magenta", weight=3]; 2013 -> 331[label="",style="dashed", color="red", weight=0]; 2013[label="Integer (primMulInt vuz71 vuz1040) == fromInt (Pos Zero)",fontsize=16,color="magenta"];2013 -> 2018[label="",style="dashed", color="magenta", weight=3]; 2011[label="Integer vuz32 `quot` gcd2 vuz108 (Integer vuz109) (Integer vuz32)",fontsize=16,color="burlywood",shape="triangle"];5725[label="vuz108/False",fontsize=10,color="white",style="solid",shape="box"];2011 -> 5725[label="",style="solid", color="burlywood", weight=9]; 5725 -> 2019[label="",style="solid", color="burlywood", weight=3]; 5726[label="vuz108/True",fontsize=10,color="white",style="solid",shape="box"];2011 -> 5726[label="",style="solid", color="burlywood", weight=9]; 5726 -> 2020[label="",style="solid", color="burlywood", weight=3]; 2644 -> 2310[label="",style="dashed", color="red", weight=0]; 2644[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2645 -> 584[label="",style="dashed", color="red", weight=0]; 2645[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2646 -> 2310[label="",style="dashed", color="red", weight=0]; 2646[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2647 -> 584[label="",style="dashed", color="red", weight=0]; 2647[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2648[label="Float (Neg (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2424[label="Integer (Neg (Succ Zero))",fontsize=16,color="green",shape="box"];2649[label="Double (Neg (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2650[label="fromInt (Neg (Succ Zero)) :% fromInt (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2650 -> 2681[label="",style="dashed", color="green", weight=3]; 2650 -> 2682[label="",style="dashed", color="green", weight=3]; 2060[label="vuz50",fontsize=16,color="green",shape="box"];2061[label="Pos (Succ vuz4900)",fontsize=16,color="green",shape="box"];1174[label="gcd0Gcd'2 (Pos Zero) (vuz50 `rem` Pos Zero)",fontsize=16,color="black",shape="box"];1174 -> 1209[label="",style="solid", color="black", weight=3]; 1175[label="Pos (primDivNatS vuz180 (Succ vuz5000))",fontsize=16,color="green",shape="box"];1175 -> 1210[label="",style="dashed", color="green", weight=3]; 1176[label="error []",fontsize=16,color="black",shape="triangle"];1176 -> 1211[label="",style="solid", color="black", weight=3]; 1177[label="Neg (primDivNatS vuz180 (Succ vuz5000))",fontsize=16,color="green",shape="box"];1177 -> 1212[label="",style="dashed", color="green", weight=3]; 1178 -> 1176[label="",style="dashed", color="red", weight=0]; 1178[label="error []",fontsize=16,color="magenta"];2062[label="vuz50",fontsize=16,color="green",shape="box"];2063[label="Neg (Succ vuz4900)",fontsize=16,color="green",shape="box"];2075[label="gcd0Gcd' vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="black",shape="box"];2075 -> 2078[label="",style="solid", color="black", weight=3]; 2064[label="vuz54",fontsize=16,color="green",shape="box"];2065[label="Pos (Succ vuz5300)",fontsize=16,color="green",shape="box"];1183[label="vuz54",fontsize=16,color="green",shape="box"];1184[label="Neg (primDivNatS vuz180 (Succ vuz5400))",fontsize=16,color="green",shape="box"];1184 -> 1215[label="",style="dashed", color="green", weight=3]; 1185 -> 1176[label="",style="dashed", color="red", weight=0]; 1185[label="error []",fontsize=16,color="magenta"];1186[label="Pos (primDivNatS vuz180 (Succ vuz5400))",fontsize=16,color="green",shape="box"];1186 -> 1216[label="",style="dashed", color="green", weight=3]; 1187 -> 1176[label="",style="dashed", color="red", weight=0]; 1187[label="error []",fontsize=16,color="magenta"];2066[label="vuz54",fontsize=16,color="green",shape="box"];2067[label="Neg (Succ vuz5300)",fontsize=16,color="green",shape="box"];1190 -> 698[label="",style="dashed", color="red", weight=0]; 1190[label="Integer (primMulInt vuz30 (Pos (Succ Zero))) `quot` reduce2D (Integer (primMulInt vuz30 (Pos (Succ Zero)))) (abs (Integer vuz37))",fontsize=16,color="magenta"];1190 -> 1217[label="",style="dashed", color="magenta", weight=3]; 1190 -> 1218[label="",style="dashed", color="magenta", weight=3]; 1191[label="Integer vuz30 * Integer (Neg (Succ Zero)) `quot` reduce2D (Integer vuz31 * Integer (Neg (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1191 -> 1219[label="",style="solid", color="black", weight=3]; 1192[label="Integer vuz59 `quot` gcd0Gcd'2 (abs (Integer vuz60)) (abs (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1192 -> 1220[label="",style="solid", color="black", weight=3]; 1193[label="Integer vuz59 `quot` gcd1 (absReal2 (Integer vuz37) == fromInt (Pos Zero)) (Integer vuz60) (absReal2 (Integer vuz37))",fontsize=16,color="black",shape="box"];1193 -> 1221[label="",style="solid", color="black", weight=3]; 2015 -> 331[label="",style="dashed", color="red", weight=0]; 2015[label="Integer vuz34 == fromInt (Pos Zero)",fontsize=16,color="magenta"];2015 -> 2021[label="",style="dashed", color="magenta", weight=3]; 2014[label="signumReal2 (Integer vuz34) vuz111",fontsize=16,color="burlywood",shape="triangle"];5727[label="vuz111/False",fontsize=10,color="white",style="solid",shape="box"];2014 -> 5727[label="",style="solid", color="burlywood", weight=9]; 5727 -> 2022[label="",style="solid", color="burlywood", weight=3]; 5728[label="vuz111/True",fontsize=10,color="white",style="solid",shape="box"];2014 -> 5728[label="",style="solid", color="burlywood", weight=9]; 5728 -> 2023[label="",style="solid", color="burlywood", weight=3]; 2016[label="vuz1040",fontsize=16,color="green",shape="box"];2017[label="vuz71",fontsize=16,color="green",shape="box"];2018 -> 25[label="",style="dashed", color="red", weight=0]; 2018[label="primMulInt vuz71 vuz1040",fontsize=16,color="magenta"];2018 -> 2026[label="",style="dashed", color="magenta", weight=3]; 2018 -> 2027[label="",style="dashed", color="magenta", weight=3]; 2019[label="Integer vuz32 `quot` gcd2 False (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="box"];2019 -> 2028[label="",style="solid", color="black", weight=3]; 2020[label="Integer vuz32 `quot` gcd2 True (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="box"];2020 -> 2029[label="",style="solid", color="black", weight=3]; 2681[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5729[label="fromInt :: Int -> Integer",fontsize=10,color="white",style="solid",shape="box"];2681 -> 5729[label="",style="solid", color="blue", weight=9]; 5729 -> 2713[label="",style="solid", color="blue", weight=3]; 5730[label="fromInt :: Int -> Int",fontsize=10,color="white",style="solid",shape="box"];2681 -> 5730[label="",style="solid", color="blue", weight=9]; 5730 -> 2714[label="",style="solid", color="blue", weight=3]; 2682[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5731[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2682 -> 5731[label="",style="solid", color="blue", weight=9]; 5731 -> 2715[label="",style="solid", color="blue", weight=3]; 5732[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2682 -> 5732[label="",style="solid", color="blue", weight=9]; 5732 -> 2716[label="",style="solid", color="blue", weight=3]; 1209 -> 2097[label="",style="dashed", color="red", weight=0]; 1209[label="gcd0Gcd'1 (vuz50 `rem` Pos Zero == fromInt (Pos Zero)) (Pos Zero) (vuz50 `rem` Pos Zero)",fontsize=16,color="magenta"];1209 -> 2098[label="",style="dashed", color="magenta", weight=3]; 1209 -> 2099[label="",style="dashed", color="magenta", weight=3]; 1209 -> 2100[label="",style="dashed", color="magenta", weight=3]; 1210[label="primDivNatS vuz180 (Succ vuz5000)",fontsize=16,color="burlywood",shape="triangle"];5733[label="vuz180/Succ vuz1800",fontsize=10,color="white",style="solid",shape="box"];1210 -> 5733[label="",style="solid", color="burlywood", weight=9]; 5733 -> 1240[label="",style="solid", color="burlywood", weight=3]; 5734[label="vuz180/Zero",fontsize=10,color="white",style="solid",shape="box"];1210 -> 5734[label="",style="solid", color="burlywood", weight=9]; 5734 -> 1241[label="",style="solid", color="burlywood", weight=3]; 1211[label="error []",fontsize=16,color="red",shape="box"];1212 -> 1210[label="",style="dashed", color="red", weight=0]; 1212[label="primDivNatS vuz180 (Succ vuz5000)",fontsize=16,color="magenta"];1212 -> 1242[label="",style="dashed", color="magenta", weight=3]; 2078[label="gcd0Gcd'2 vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="black",shape="box"];2078 -> 2094[label="",style="solid", color="black", weight=3]; 1215 -> 1210[label="",style="dashed", color="red", weight=0]; 1215[label="primDivNatS vuz180 (Succ vuz5400)",fontsize=16,color="magenta"];1215 -> 1246[label="",style="dashed", color="magenta", weight=3]; 1215 -> 1247[label="",style="dashed", color="magenta", weight=3]; 1216 -> 1210[label="",style="dashed", color="red", weight=0]; 1216[label="primDivNatS vuz180 (Succ vuz5400)",fontsize=16,color="magenta"];1216 -> 1248[label="",style="dashed", color="magenta", weight=3]; 1216 -> 1249[label="",style="dashed", color="magenta", weight=3]; 1217 -> 25[label="",style="dashed", color="red", weight=0]; 1217[label="primMulInt vuz30 (Pos (Succ Zero))",fontsize=16,color="magenta"];1217 -> 1250[label="",style="dashed", color="magenta", weight=3]; 1217 -> 1251[label="",style="dashed", color="magenta", weight=3]; 1218 -> 25[label="",style="dashed", color="red", weight=0]; 1218[label="primMulInt vuz30 (Pos (Succ Zero))",fontsize=16,color="magenta"];1218 -> 1252[label="",style="dashed", color="magenta", weight=3]; 1218 -> 1253[label="",style="dashed", color="magenta", weight=3]; 1219 -> 698[label="",style="dashed", color="red", weight=0]; 1219[label="Integer (primMulInt vuz30 (Neg (Succ Zero))) `quot` reduce2D (Integer (primMulInt vuz30 (Neg (Succ Zero)))) (abs (Integer vuz37))",fontsize=16,color="magenta"];1219 -> 1254[label="",style="dashed", color="magenta", weight=3]; 1219 -> 1255[label="",style="dashed", color="magenta", weight=3]; 1220[label="Integer vuz59 `quot` gcd0Gcd'1 (abs (abs (Integer vuz37)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (abs (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1220 -> 1256[label="",style="solid", color="black", weight=3]; 1221[label="Integer vuz59 `quot` gcd1 (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero)) == fromInt (Pos Zero)) (Integer vuz60) (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];1221 -> 1257[label="",style="solid", color="black", weight=3]; 2021[label="vuz34",fontsize=16,color="green",shape="box"];2022[label="signumReal2 (Integer vuz34) False",fontsize=16,color="black",shape="box"];2022 -> 2030[label="",style="solid", color="black", weight=3]; 2023[label="signumReal2 (Integer vuz34) True",fontsize=16,color="black",shape="box"];2023 -> 2031[label="",style="solid", color="black", weight=3]; 2026[label="vuz1040",fontsize=16,color="green",shape="box"];2027[label="vuz71",fontsize=16,color="green",shape="box"];2028[label="Integer vuz32 `quot` gcd0 (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="triangle"];2028 -> 2041[label="",style="solid", color="black", weight=3]; 2029 -> 2042[label="",style="dashed", color="red", weight=0]; 2029[label="Integer vuz32 `quot` gcd1 (Integer vuz32 == fromInt (Pos Zero)) (Integer vuz109) (Integer vuz32)",fontsize=16,color="magenta"];2029 -> 2043[label="",style="dashed", color="magenta", weight=3]; 2713 -> 2387[label="",style="dashed", color="red", weight=0]; 2713[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2714 -> 711[label="",style="dashed", color="red", weight=0]; 2714[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2715 -> 2310[label="",style="dashed", color="red", weight=0]; 2715[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2716 -> 584[label="",style="dashed", color="red", weight=0]; 2716[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2098 -> 1690[label="",style="dashed", color="red", weight=0]; 2098[label="vuz50 `rem` Pos Zero == fromInt (Pos Zero)",fontsize=16,color="magenta"];2098 -> 2102[label="",style="dashed", color="magenta", weight=3]; 2098 -> 2103[label="",style="dashed", color="magenta", weight=3]; 2099[label="vuz50",fontsize=16,color="green",shape="box"];2100[label="Pos Zero",fontsize=16,color="green",shape="box"];2097[label="gcd0Gcd'1 vuz122 vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="burlywood",shape="triangle"];5735[label="vuz122/False",fontsize=10,color="white",style="solid",shape="box"];2097 -> 5735[label="",style="solid", color="burlywood", weight=9]; 5735 -> 2104[label="",style="solid", color="burlywood", weight=3]; 5736[label="vuz122/True",fontsize=10,color="white",style="solid",shape="box"];2097 -> 5736[label="",style="solid", color="burlywood", weight=9]; 5736 -> 2105[label="",style="solid", color="burlywood", weight=3]; 1240[label="primDivNatS (Succ vuz1800) (Succ vuz5000)",fontsize=16,color="black",shape="box"];1240 -> 1272[label="",style="solid", color="black", weight=3]; 1241[label="primDivNatS Zero (Succ vuz5000)",fontsize=16,color="black",shape="box"];1241 -> 1273[label="",style="solid", color="black", weight=3]; 1242[label="vuz5000",fontsize=16,color="green",shape="box"];2094 -> 2097[label="",style="dashed", color="red", weight=0]; 2094[label="gcd0Gcd'1 (vuz90 `rem` vuz116 == fromInt (Pos Zero)) vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="magenta"];2094 -> 2101[label="",style="dashed", color="magenta", weight=3]; 1246[label="vuz5400",fontsize=16,color="green",shape="box"];1247[label="vuz180",fontsize=16,color="green",shape="box"];1248[label="vuz5400",fontsize=16,color="green",shape="box"];1249[label="vuz180",fontsize=16,color="green",shape="box"];1250[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];1251[label="vuz30",fontsize=16,color="green",shape="box"];1252[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];1253[label="vuz30",fontsize=16,color="green",shape="box"];1254 -> 25[label="",style="dashed", color="red", weight=0]; 1254[label="primMulInt vuz30 (Neg (Succ Zero))",fontsize=16,color="magenta"];1254 -> 1277[label="",style="dashed", color="magenta", weight=3]; 1254 -> 1278[label="",style="dashed", color="magenta", weight=3]; 1255 -> 25[label="",style="dashed", color="red", weight=0]; 1255[label="primMulInt vuz30 (Neg (Succ Zero))",fontsize=16,color="magenta"];1255 -> 1279[label="",style="dashed", color="magenta", weight=3]; 1255 -> 1280[label="",style="dashed", color="magenta", weight=3]; 1256[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal (abs (Integer vuz37)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1256 -> 1281[label="",style="solid", color="black", weight=3]; 1257[label="Integer vuz59 `quot` gcd1 (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT) == fromInt (Pos Zero)) (Integer vuz60) (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT))",fontsize=16,color="black",shape="box"];1257 -> 1282[label="",style="solid", color="black", weight=3]; 2030[label="signumReal1 (Integer vuz34) (Integer vuz34 > fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];2030 -> 2044[label="",style="solid", color="black", weight=3]; 2031[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];2031 -> 2045[label="",style="solid", color="black", weight=3]; 2041[label="Integer vuz32 `quot` gcd0Gcd' (abs (Integer vuz109)) (abs (Integer vuz32))",fontsize=16,color="black",shape="box"];2041 -> 2046[label="",style="solid", color="black", weight=3]; 2043 -> 331[label="",style="dashed", color="red", weight=0]; 2043[label="Integer vuz32 == fromInt (Pos Zero)",fontsize=16,color="magenta"];2043 -> 2047[label="",style="dashed", color="magenta", weight=3]; 2042[label="Integer vuz32 `quot` gcd1 vuz115 (Integer vuz109) (Integer vuz32)",fontsize=16,color="burlywood",shape="triangle"];5737[label="vuz115/False",fontsize=10,color="white",style="solid",shape="box"];2042 -> 5737[label="",style="solid", color="burlywood", weight=9]; 5737 -> 2048[label="",style="solid", color="burlywood", weight=3]; 5738[label="vuz115/True",fontsize=10,color="white",style="solid",shape="box"];2042 -> 5738[label="",style="solid", color="burlywood", weight=9]; 5738 -> 2049[label="",style="solid", color="burlywood", weight=3]; 2102 -> 338[label="",style="dashed", color="red", weight=0]; 2102[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2103[label="vuz50 `rem` Pos Zero",fontsize=16,color="black",shape="box"];2103 -> 2119[label="",style="solid", color="black", weight=3]; 2104[label="gcd0Gcd'1 False vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="black",shape="box"];2104 -> 2120[label="",style="solid", color="black", weight=3]; 2105[label="gcd0Gcd'1 True vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="black",shape="box"];2105 -> 2121[label="",style="solid", color="black", weight=3]; 1272[label="primDivNatS0 vuz1800 vuz5000 (primGEqNatS vuz1800 vuz5000)",fontsize=16,color="burlywood",shape="box"];5739[label="vuz1800/Succ vuz18000",fontsize=10,color="white",style="solid",shape="box"];1272 -> 5739[label="",style="solid", color="burlywood", weight=9]; 5739 -> 1298[label="",style="solid", color="burlywood", weight=3]; 5740[label="vuz1800/Zero",fontsize=10,color="white",style="solid",shape="box"];1272 -> 5740[label="",style="solid", color="burlywood", weight=9]; 5740 -> 1299[label="",style="solid", color="burlywood", weight=3]; 1273[label="Zero",fontsize=16,color="green",shape="box"];2101 -> 1690[label="",style="dashed", color="red", weight=0]; 2101[label="vuz90 `rem` vuz116 == fromInt (Pos Zero)",fontsize=16,color="magenta"];2101 -> 2106[label="",style="dashed", color="magenta", weight=3]; 2101 -> 2107[label="",style="dashed", color="magenta", weight=3]; 1277[label="Neg (Succ Zero)",fontsize=16,color="green",shape="box"];1278[label="vuz30",fontsize=16,color="green",shape="box"];1279[label="Neg (Succ Zero)",fontsize=16,color="green",shape="box"];1280[label="vuz30",fontsize=16,color="green",shape="box"];1281[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal2 (abs (Integer vuz37)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal2 (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1281 -> 1302[label="",style="solid", color="black", weight=3]; 1282 -> 1303[label="",style="dashed", color="red", weight=0]; 1282[label="Integer vuz59 `quot` gcd1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="magenta"];1282 -> 1304[label="",style="dashed", color="magenta", weight=3]; 2044 -> 2076[label="",style="dashed", color="red", weight=0]; 2044[label="signumReal1 (Integer vuz34) (compare (Integer vuz34) (fromInt (Pos Zero)) == GT)",fontsize=16,color="magenta"];2044 -> 2077[label="",style="dashed", color="magenta", weight=3]; 2045[label="Integer (Pos Zero)",fontsize=16,color="green",shape="box"];2046[label="Integer vuz32 `quot` gcd0Gcd'2 (abs (Integer vuz109)) (abs (Integer vuz32))",fontsize=16,color="black",shape="box"];2046 -> 2079[label="",style="solid", color="black", weight=3]; 2047[label="vuz32",fontsize=16,color="green",shape="box"];2048[label="Integer vuz32 `quot` gcd1 False (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="box"];2048 -> 2080[label="",style="solid", color="black", weight=3]; 2049[label="Integer vuz32 `quot` gcd1 True (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="box"];2049 -> 2081[label="",style="solid", color="black", weight=3]; 2119[label="primRemInt vuz50 (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5741[label="vuz50/Pos vuz500",fontsize=10,color="white",style="solid",shape="box"];2119 -> 5741[label="",style="solid", color="burlywood", weight=9]; 5741 -> 2143[label="",style="solid", color="burlywood", weight=3]; 5742[label="vuz50/Neg vuz500",fontsize=10,color="white",style="solid",shape="box"];2119 -> 5742[label="",style="solid", color="burlywood", weight=9]; 5742 -> 2144[label="",style="solid", color="burlywood", weight=3]; 2120 -> 2055[label="",style="dashed", color="red", weight=0]; 2120[label="gcd0Gcd'0 vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="magenta"];2120 -> 2145[label="",style="dashed", color="magenta", weight=3]; 2120 -> 2146[label="",style="dashed", color="magenta", weight=3]; 2121[label="vuz116",fontsize=16,color="green",shape="box"];1298[label="primDivNatS0 (Succ vuz18000) vuz5000 (primGEqNatS (Succ vuz18000) vuz5000)",fontsize=16,color="burlywood",shape="box"];5743[label="vuz5000/Succ vuz50000",fontsize=10,color="white",style="solid",shape="box"];1298 -> 5743[label="",style="solid", color="burlywood", weight=9]; 5743 -> 1321[label="",style="solid", color="burlywood", weight=3]; 5744[label="vuz5000/Zero",fontsize=10,color="white",style="solid",shape="box"];1298 -> 5744[label="",style="solid", color="burlywood", weight=9]; 5744 -> 1322[label="",style="solid", color="burlywood", weight=3]; 1299[label="primDivNatS0 Zero vuz5000 (primGEqNatS Zero vuz5000)",fontsize=16,color="burlywood",shape="box"];5745[label="vuz5000/Succ vuz50000",fontsize=10,color="white",style="solid",shape="box"];1299 -> 5745[label="",style="solid", color="burlywood", weight=9]; 5745 -> 1323[label="",style="solid", color="burlywood", weight=3]; 5746[label="vuz5000/Zero",fontsize=10,color="white",style="solid",shape="box"];1299 -> 5746[label="",style="solid", color="burlywood", weight=9]; 5746 -> 1324[label="",style="solid", color="burlywood", weight=3]; 2106 -> 338[label="",style="dashed", color="red", weight=0]; 2106[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2107[label="vuz90 `rem` vuz116",fontsize=16,color="black",shape="triangle"];2107 -> 2122[label="",style="solid", color="black", weight=3]; 1302[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (abs (Integer vuz37)) (abs (Integer vuz37) >= fromInt (Pos Zero)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (abs (Integer vuz37)) (abs (Integer vuz37) >= fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];1302 -> 1328[label="",style="solid", color="black", weight=3]; 1304 -> 151[label="",style="dashed", color="red", weight=0]; 1304[label="absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="magenta"];1304 -> 1329[label="",style="dashed", color="magenta", weight=3]; 1304 -> 1330[label="",style="dashed", color="magenta", weight=3]; 1303[label="Integer vuz59 `quot` gcd1 vuz82 (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="burlywood",shape="triangle"];5747[label="vuz82/False",fontsize=10,color="white",style="solid",shape="box"];1303 -> 5747[label="",style="solid", color="burlywood", weight=9]; 5747 -> 1331[label="",style="solid", color="burlywood", weight=3]; 5748[label="vuz82/True",fontsize=10,color="white",style="solid",shape="box"];1303 -> 5748[label="",style="solid", color="burlywood", weight=9]; 5748 -> 1332[label="",style="solid", color="burlywood", weight=3]; 2077 -> 2031[label="",style="dashed", color="red", weight=0]; 2077[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2076[label="signumReal1 (Integer vuz34) (compare (Integer vuz34) vuz117 == GT)",fontsize=16,color="burlywood",shape="triangle"];5749[label="vuz117/Integer vuz1170",fontsize=10,color="white",style="solid",shape="box"];2076 -> 5749[label="",style="solid", color="burlywood", weight=9]; 5749 -> 2082[label="",style="solid", color="burlywood", weight=3]; 2079 -> 2095[label="",style="dashed", color="red", weight=0]; 2079[label="Integer vuz32 `quot` gcd0Gcd'1 (abs (Integer vuz32) == fromInt (Pos Zero)) (abs (Integer vuz109)) (abs (Integer vuz32))",fontsize=16,color="magenta"];2079 -> 2096[label="",style="dashed", color="magenta", weight=3]; 2080 -> 2028[label="",style="dashed", color="red", weight=0]; 2080[label="Integer vuz32 `quot` gcd0 (Integer vuz109) (Integer vuz32)",fontsize=16,color="magenta"];2081 -> 1360[label="",style="dashed", color="red", weight=0]; 2081[label="Integer vuz32 `quot` error []",fontsize=16,color="magenta"];2081 -> 2108[label="",style="dashed", color="magenta", weight=3]; 2143[label="primRemInt (Pos vuz500) (Pos Zero)",fontsize=16,color="black",shape="box"];2143 -> 2173[label="",style="solid", color="black", weight=3]; 2144[label="primRemInt (Neg vuz500) (Pos Zero)",fontsize=16,color="black",shape="box"];2144 -> 2174[label="",style="solid", color="black", weight=3]; 2145[label="vuz116",fontsize=16,color="green",shape="box"];2146 -> 2107[label="",style="dashed", color="red", weight=0]; 2146[label="vuz90 `rem` vuz116",fontsize=16,color="magenta"];1321[label="primDivNatS0 (Succ vuz18000) (Succ vuz50000) (primGEqNatS (Succ vuz18000) (Succ vuz50000))",fontsize=16,color="black",shape="box"];1321 -> 1350[label="",style="solid", color="black", weight=3]; 1322[label="primDivNatS0 (Succ vuz18000) Zero (primGEqNatS (Succ vuz18000) Zero)",fontsize=16,color="black",shape="box"];1322 -> 1351[label="",style="solid", color="black", weight=3]; 1323[label="primDivNatS0 Zero (Succ vuz50000) (primGEqNatS Zero (Succ vuz50000))",fontsize=16,color="black",shape="box"];1323 -> 1352[label="",style="solid", color="black", weight=3]; 1324[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1324 -> 1353[label="",style="solid", color="black", weight=3]; 2122[label="primRemInt vuz90 vuz116",fontsize=16,color="burlywood",shape="triangle"];5750[label="vuz90/Pos vuz900",fontsize=10,color="white",style="solid",shape="box"];2122 -> 5750[label="",style="solid", color="burlywood", weight=9]; 5750 -> 2147[label="",style="solid", color="burlywood", weight=3]; 5751[label="vuz90/Neg vuz900",fontsize=10,color="white",style="solid",shape="box"];2122 -> 5751[label="",style="solid", color="burlywood", weight=9]; 5751 -> 2148[label="",style="solid", color="burlywood", weight=3]; 1328[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (abs (Integer vuz37)) (compare (abs (Integer vuz37)) (fromInt (Pos Zero)) /= LT) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (abs (Integer vuz37)) (compare (abs (Integer vuz37)) (fromInt (Pos Zero)) /= LT))",fontsize=16,color="black",shape="box"];1328 -> 1358[label="",style="solid", color="black", weight=3]; 1329[label="vuz37",fontsize=16,color="green",shape="box"];1330[label="vuz37",fontsize=16,color="green",shape="box"];1331[label="Integer vuz59 `quot` gcd1 False (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1331 -> 1359[label="",style="solid", color="black", weight=3]; 1332[label="Integer vuz59 `quot` gcd1 True (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1332 -> 1360[label="",style="solid", color="black", weight=3]; 2082[label="signumReal1 (Integer vuz34) (compare (Integer vuz34) (Integer vuz1170) == GT)",fontsize=16,color="black",shape="box"];2082 -> 2109[label="",style="solid", color="black", weight=3]; 2096 -> 2031[label="",style="dashed", color="red", weight=0]; 2096[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2095[label="Integer vuz32 `quot` gcd0Gcd'1 (abs (Integer vuz32) == vuz121) (abs (Integer vuz109)) (abs (Integer vuz32))",fontsize=16,color="black",shape="triangle"];2095 -> 2110[label="",style="solid", color="black", weight=3]; 2108[label="vuz32",fontsize=16,color="green",shape="box"];1360[label="Integer vuz59 `quot` error []",fontsize=16,color="black",shape="triangle"];1360 -> 1440[label="",style="solid", color="black", weight=3]; 2173 -> 1176[label="",style="dashed", color="red", weight=0]; 2173[label="error []",fontsize=16,color="magenta"];2174 -> 1176[label="",style="dashed", color="red", weight=0]; 2174[label="error []",fontsize=16,color="magenta"];1350 -> 3385[label="",style="dashed", color="red", weight=0]; 1350[label="primDivNatS0 (Succ vuz18000) (Succ vuz50000) (primGEqNatS vuz18000 vuz50000)",fontsize=16,color="magenta"];1350 -> 3386[label="",style="dashed", color="magenta", weight=3]; 1350 -> 3387[label="",style="dashed", color="magenta", weight=3]; 1350 -> 3388[label="",style="dashed", color="magenta", weight=3]; 1350 -> 3389[label="",style="dashed", color="magenta", weight=3]; 1351[label="primDivNatS0 (Succ vuz18000) Zero True",fontsize=16,color="black",shape="box"];1351 -> 1409[label="",style="solid", color="black", weight=3]; 1352[label="primDivNatS0 Zero (Succ vuz50000) False",fontsize=16,color="black",shape="box"];1352 -> 1410[label="",style="solid", color="black", weight=3]; 1353[label="primDivNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];1353 -> 1411[label="",style="solid", color="black", weight=3]; 2147[label="primRemInt (Pos vuz900) vuz116",fontsize=16,color="burlywood",shape="box"];5752[label="vuz116/Pos vuz1160",fontsize=10,color="white",style="solid",shape="box"];2147 -> 5752[label="",style="solid", color="burlywood", weight=9]; 5752 -> 2175[label="",style="solid", color="burlywood", weight=3]; 5753[label="vuz116/Neg vuz1160",fontsize=10,color="white",style="solid",shape="box"];2147 -> 5753[label="",style="solid", color="burlywood", weight=9]; 5753 -> 2176[label="",style="solid", color="burlywood", weight=3]; 2148[label="primRemInt (Neg vuz900) vuz116",fontsize=16,color="burlywood",shape="box"];5754[label="vuz116/Pos vuz1160",fontsize=10,color="white",style="solid",shape="box"];2148 -> 5754[label="",style="solid", color="burlywood", weight=9]; 5754 -> 2177[label="",style="solid", color="burlywood", weight=3]; 5755[label="vuz116/Neg vuz1160",fontsize=10,color="white",style="solid",shape="box"];2148 -> 5755[label="",style="solid", color="burlywood", weight=9]; 5755 -> 2178[label="",style="solid", color="burlywood", weight=3]; 1358[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (abs (Integer vuz37)) (not (compare (abs (Integer vuz37)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (abs (Integer vuz37)) (not (compare (abs (Integer vuz37)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1358 -> 1438[label="",style="solid", color="black", weight=3]; 1359[label="Integer vuz59 `quot` gcd0 (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1359 -> 1439[label="",style="solid", color="black", weight=3]; 2109[label="signumReal1 (Integer vuz34) (primCmpInt vuz34 vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5756[label="vuz34/Pos vuz340",fontsize=10,color="white",style="solid",shape="box"];2109 -> 5756[label="",style="solid", color="burlywood", weight=9]; 5756 -> 2123[label="",style="solid", color="burlywood", weight=3]; 5757[label="vuz34/Neg vuz340",fontsize=10,color="white",style="solid",shape="box"];2109 -> 5757[label="",style="solid", color="burlywood", weight=9]; 5757 -> 2124[label="",style="solid", color="burlywood", weight=3]; 2110[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal (Integer vuz32) == vuz121) (abs (Integer vuz109)) (absReal (Integer vuz32))",fontsize=16,color="black",shape="box"];2110 -> 2125[label="",style="solid", color="black", weight=3]; 1440[label="error []",fontsize=16,color="red",shape="box"];3386[label="vuz50000",fontsize=16,color="green",shape="box"];3387[label="vuz18000",fontsize=16,color="green",shape="box"];3388[label="vuz18000",fontsize=16,color="green",shape="box"];3389[label="vuz50000",fontsize=16,color="green",shape="box"];3385[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS vuz177 vuz178)",fontsize=16,color="burlywood",shape="triangle"];5758[label="vuz177/Succ vuz1770",fontsize=10,color="white",style="solid",shape="box"];3385 -> 5758[label="",style="solid", color="burlywood", weight=9]; 5758 -> 3426[label="",style="solid", color="burlywood", weight=3]; 5759[label="vuz177/Zero",fontsize=10,color="white",style="solid",shape="box"];3385 -> 5759[label="",style="solid", color="burlywood", weight=9]; 5759 -> 3427[label="",style="solid", color="burlywood", weight=3]; 1409[label="Succ (primDivNatS (primMinusNatS (Succ vuz18000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];1409 -> 1468[label="",style="dashed", color="green", weight=3]; 1410[label="Zero",fontsize=16,color="green",shape="box"];1411[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];1411 -> 1469[label="",style="dashed", color="green", weight=3]; 2175[label="primRemInt (Pos vuz900) (Pos vuz1160)",fontsize=16,color="burlywood",shape="box"];5760[label="vuz1160/Succ vuz11600",fontsize=10,color="white",style="solid",shape="box"];2175 -> 5760[label="",style="solid", color="burlywood", weight=9]; 5760 -> 2190[label="",style="solid", color="burlywood", weight=3]; 5761[label="vuz1160/Zero",fontsize=10,color="white",style="solid",shape="box"];2175 -> 5761[label="",style="solid", color="burlywood", weight=9]; 5761 -> 2191[label="",style="solid", color="burlywood", weight=3]; 2176[label="primRemInt (Pos vuz900) (Neg vuz1160)",fontsize=16,color="burlywood",shape="box"];5762[label="vuz1160/Succ vuz11600",fontsize=10,color="white",style="solid",shape="box"];2176 -> 5762[label="",style="solid", color="burlywood", weight=9]; 5762 -> 2192[label="",style="solid", color="burlywood", weight=3]; 5763[label="vuz1160/Zero",fontsize=10,color="white",style="solid",shape="box"];2176 -> 5763[label="",style="solid", color="burlywood", weight=9]; 5763 -> 2193[label="",style="solid", color="burlywood", weight=3]; 2177[label="primRemInt (Neg vuz900) (Pos vuz1160)",fontsize=16,color="burlywood",shape="box"];5764[label="vuz1160/Succ vuz11600",fontsize=10,color="white",style="solid",shape="box"];2177 -> 5764[label="",style="solid", color="burlywood", weight=9]; 5764 -> 2194[label="",style="solid", color="burlywood", weight=3]; 5765[label="vuz1160/Zero",fontsize=10,color="white",style="solid",shape="box"];2177 -> 5765[label="",style="solid", color="burlywood", weight=9]; 5765 -> 2195[label="",style="solid", color="burlywood", weight=3]; 2178[label="primRemInt (Neg vuz900) (Neg vuz1160)",fontsize=16,color="burlywood",shape="box"];5766[label="vuz1160/Succ vuz11600",fontsize=10,color="white",style="solid",shape="box"];2178 -> 5766[label="",style="solid", color="burlywood", weight=9]; 5766 -> 2196[label="",style="solid", color="burlywood", weight=3]; 5767[label="vuz1160/Zero",fontsize=10,color="white",style="solid",shape="box"];2178 -> 5767[label="",style="solid", color="burlywood", weight=9]; 5767 -> 2197[label="",style="solid", color="burlywood", weight=3]; 1438[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal (Integer vuz37)) (not (compare (absReal (Integer vuz37)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal (Integer vuz37)) (not (compare (absReal (Integer vuz37)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1438 -> 1499[label="",style="solid", color="black", weight=3]; 1439[label="Integer vuz59 `quot` gcd0Gcd' (abs (Integer vuz60)) (abs (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1439 -> 1500[label="",style="solid", color="black", weight=3]; 2123[label="signumReal1 (Integer (Pos vuz340)) (primCmpInt (Pos vuz340) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5768[label="vuz340/Succ vuz3400",fontsize=10,color="white",style="solid",shape="box"];2123 -> 5768[label="",style="solid", color="burlywood", weight=9]; 5768 -> 2149[label="",style="solid", color="burlywood", weight=3]; 5769[label="vuz340/Zero",fontsize=10,color="white",style="solid",shape="box"];2123 -> 5769[label="",style="solid", color="burlywood", weight=9]; 5769 -> 2150[label="",style="solid", color="burlywood", weight=3]; 2124[label="signumReal1 (Integer (Neg vuz340)) (primCmpInt (Neg vuz340) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5770[label="vuz340/Succ vuz3400",fontsize=10,color="white",style="solid",shape="box"];2124 -> 5770[label="",style="solid", color="burlywood", weight=9]; 5770 -> 2151[label="",style="solid", color="burlywood", weight=3]; 5771[label="vuz340/Zero",fontsize=10,color="white",style="solid",shape="box"];2124 -> 5771[label="",style="solid", color="burlywood", weight=9]; 5771 -> 2152[label="",style="solid", color="burlywood", weight=3]; 2125[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal2 (Integer vuz32) == vuz121) (abs (Integer vuz109)) (absReal2 (Integer vuz32))",fontsize=16,color="black",shape="box"];2125 -> 2153[label="",style="solid", color="black", weight=3]; 3426[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS (Succ vuz1770) vuz178)",fontsize=16,color="burlywood",shape="box"];5772[label="vuz178/Succ vuz1780",fontsize=10,color="white",style="solid",shape="box"];3426 -> 5772[label="",style="solid", color="burlywood", weight=9]; 5772 -> 3455[label="",style="solid", color="burlywood", weight=3]; 5773[label="vuz178/Zero",fontsize=10,color="white",style="solid",shape="box"];3426 -> 5773[label="",style="solid", color="burlywood", weight=9]; 5773 -> 3456[label="",style="solid", color="burlywood", weight=3]; 3427[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS Zero vuz178)",fontsize=16,color="burlywood",shape="box"];5774[label="vuz178/Succ vuz1780",fontsize=10,color="white",style="solid",shape="box"];3427 -> 5774[label="",style="solid", color="burlywood", weight=9]; 5774 -> 3457[label="",style="solid", color="burlywood", weight=3]; 5775[label="vuz178/Zero",fontsize=10,color="white",style="solid",shape="box"];3427 -> 5775[label="",style="solid", color="burlywood", weight=9]; 5775 -> 3458[label="",style="solid", color="burlywood", weight=3]; 1468 -> 1210[label="",style="dashed", color="red", weight=0]; 1468[label="primDivNatS (primMinusNatS (Succ vuz18000) Zero) (Succ Zero)",fontsize=16,color="magenta"];1468 -> 1555[label="",style="dashed", color="magenta", weight=3]; 1468 -> 1556[label="",style="dashed", color="magenta", weight=3]; 1469 -> 1210[label="",style="dashed", color="red", weight=0]; 1469[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];1469 -> 1557[label="",style="dashed", color="magenta", weight=3]; 1469 -> 1558[label="",style="dashed", color="magenta", weight=3]; 2190[label="primRemInt (Pos vuz900) (Pos (Succ vuz11600))",fontsize=16,color="black",shape="box"];2190 -> 2244[label="",style="solid", color="black", weight=3]; 2191[label="primRemInt (Pos vuz900) (Pos Zero)",fontsize=16,color="black",shape="box"];2191 -> 2245[label="",style="solid", color="black", weight=3]; 2192[label="primRemInt (Pos vuz900) (Neg (Succ vuz11600))",fontsize=16,color="black",shape="box"];2192 -> 2246[label="",style="solid", color="black", weight=3]; 2193[label="primRemInt (Pos vuz900) (Neg Zero)",fontsize=16,color="black",shape="box"];2193 -> 2247[label="",style="solid", color="black", weight=3]; 2194[label="primRemInt (Neg vuz900) (Pos (Succ vuz11600))",fontsize=16,color="black",shape="box"];2194 -> 2248[label="",style="solid", color="black", weight=3]; 2195[label="primRemInt (Neg vuz900) (Pos Zero)",fontsize=16,color="black",shape="box"];2195 -> 2249[label="",style="solid", color="black", weight=3]; 2196[label="primRemInt (Neg vuz900) (Neg (Succ vuz11600))",fontsize=16,color="black",shape="box"];2196 -> 2250[label="",style="solid", color="black", weight=3]; 2197[label="primRemInt (Neg vuz900) (Neg Zero)",fontsize=16,color="black",shape="box"];2197 -> 2251[label="",style="solid", color="black", weight=3]; 1499[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal2 (Integer vuz37)) (not (compare (absReal2 (Integer vuz37)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal2 (Integer vuz37)) (not (compare (absReal2 (Integer vuz37)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1499 -> 1563[label="",style="solid", color="black", weight=3]; 1500[label="Integer vuz59 `quot` gcd0Gcd'2 (abs (Integer vuz60)) (abs (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1500 -> 1564[label="",style="solid", color="black", weight=3]; 2149[label="signumReal1 (Integer (Pos (Succ vuz3400))) (primCmpInt (Pos (Succ vuz3400)) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5776[label="vuz1170/Pos vuz11700",fontsize=10,color="white",style="solid",shape="box"];2149 -> 5776[label="",style="solid", color="burlywood", weight=9]; 5776 -> 2179[label="",style="solid", color="burlywood", weight=3]; 5777[label="vuz1170/Neg vuz11700",fontsize=10,color="white",style="solid",shape="box"];2149 -> 5777[label="",style="solid", color="burlywood", weight=9]; 5777 -> 2180[label="",style="solid", color="burlywood", weight=3]; 2150[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5778[label="vuz1170/Pos vuz11700",fontsize=10,color="white",style="solid",shape="box"];2150 -> 5778[label="",style="solid", color="burlywood", weight=9]; 5778 -> 2181[label="",style="solid", color="burlywood", weight=3]; 5779[label="vuz1170/Neg vuz11700",fontsize=10,color="white",style="solid",shape="box"];2150 -> 5779[label="",style="solid", color="burlywood", weight=9]; 5779 -> 2182[label="",style="solid", color="burlywood", weight=3]; 2151[label="signumReal1 (Integer (Neg (Succ vuz3400))) (primCmpInt (Neg (Succ vuz3400)) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5780[label="vuz1170/Pos vuz11700",fontsize=10,color="white",style="solid",shape="box"];2151 -> 5780[label="",style="solid", color="burlywood", weight=9]; 5780 -> 2183[label="",style="solid", color="burlywood", weight=3]; 5781[label="vuz1170/Neg vuz11700",fontsize=10,color="white",style="solid",shape="box"];2151 -> 5781[label="",style="solid", color="burlywood", weight=9]; 5781 -> 2184[label="",style="solid", color="burlywood", weight=3]; 2152[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5782[label="vuz1170/Pos vuz11700",fontsize=10,color="white",style="solid",shape="box"];2152 -> 5782[label="",style="solid", color="burlywood", weight=9]; 5782 -> 2185[label="",style="solid", color="burlywood", weight=3]; 5783[label="vuz1170/Neg vuz11700",fontsize=10,color="white",style="solid",shape="box"];2152 -> 5783[label="",style="solid", color="burlywood", weight=9]; 5783 -> 2186[label="",style="solid", color="burlywood", weight=3]; 2153 -> 2187[label="",style="dashed", color="red", weight=0]; 2153[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal1 (Integer vuz32) (Integer vuz32 >= fromInt (Pos Zero)) == vuz121) (abs (Integer vuz109)) (absReal1 (Integer vuz32) (Integer vuz32 >= fromInt (Pos Zero)))",fontsize=16,color="magenta"];2153 -> 2188[label="",style="dashed", color="magenta", weight=3]; 2153 -> 2189[label="",style="dashed", color="magenta", weight=3]; 3455[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS (Succ vuz1770) (Succ vuz1780))",fontsize=16,color="black",shape="box"];3455 -> 3507[label="",style="solid", color="black", weight=3]; 3456[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS (Succ vuz1770) Zero)",fontsize=16,color="black",shape="box"];3456 -> 3508[label="",style="solid", color="black", weight=3]; 3457[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS Zero (Succ vuz1780))",fontsize=16,color="black",shape="box"];3457 -> 3509[label="",style="solid", color="black", weight=3]; 3458[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];3458 -> 3510[label="",style="solid", color="black", weight=3]; 1555[label="Zero",fontsize=16,color="green",shape="box"];1556[label="primMinusNatS (Succ vuz18000) Zero",fontsize=16,color="black",shape="triangle"];1556 -> 1710[label="",style="solid", color="black", weight=3]; 1557[label="Zero",fontsize=16,color="green",shape="box"];1558[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];1558 -> 1711[label="",style="solid", color="black", weight=3]; 2244[label="Pos (primModNatS vuz900 (Succ vuz11600))",fontsize=16,color="green",shape="box"];2244 -> 2304[label="",style="dashed", color="green", weight=3]; 2245 -> 1176[label="",style="dashed", color="red", weight=0]; 2245[label="error []",fontsize=16,color="magenta"];2246[label="Pos (primModNatS vuz900 (Succ vuz11600))",fontsize=16,color="green",shape="box"];2246 -> 2305[label="",style="dashed", color="green", weight=3]; 2247 -> 1176[label="",style="dashed", color="red", weight=0]; 2247[label="error []",fontsize=16,color="magenta"];2248[label="Neg (primModNatS vuz900 (Succ vuz11600))",fontsize=16,color="green",shape="box"];2248 -> 2306[label="",style="dashed", color="green", weight=3]; 2249 -> 1176[label="",style="dashed", color="red", weight=0]; 2249[label="error []",fontsize=16,color="magenta"];2250[label="Neg (primModNatS vuz900 (Succ vuz11600))",fontsize=16,color="green",shape="box"];2250 -> 2307[label="",style="dashed", color="green", weight=3]; 2251 -> 1176[label="",style="dashed", color="red", weight=0]; 2251[label="error []",fontsize=16,color="magenta"];1563[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero))) (not (compare (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero))) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero))) (not (compare (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero))) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1563 -> 1759[label="",style="solid", color="black", weight=3]; 1564[label="Integer vuz59 `quot` gcd0Gcd'1 (abs (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) == fromInt (Pos Zero)) (abs (Integer vuz60)) (abs (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1564 -> 1760[label="",style="solid", color="black", weight=3]; 2179[label="signumReal1 (Integer (Pos (Succ vuz3400))) (primCmpInt (Pos (Succ vuz3400)) (Pos vuz11700) == GT)",fontsize=16,color="black",shape="box"];2179 -> 2198[label="",style="solid", color="black", weight=3]; 2180[label="signumReal1 (Integer (Pos (Succ vuz3400))) (primCmpInt (Pos (Succ vuz3400)) (Neg vuz11700) == GT)",fontsize=16,color="black",shape="box"];2180 -> 2199[label="",style="solid", color="black", weight=3]; 2181[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos vuz11700) == GT)",fontsize=16,color="burlywood",shape="box"];5784[label="vuz11700/Succ vuz117000",fontsize=10,color="white",style="solid",shape="box"];2181 -> 5784[label="",style="solid", color="burlywood", weight=9]; 5784 -> 2200[label="",style="solid", color="burlywood", weight=3]; 5785[label="vuz11700/Zero",fontsize=10,color="white",style="solid",shape="box"];2181 -> 5785[label="",style="solid", color="burlywood", weight=9]; 5785 -> 2201[label="",style="solid", color="burlywood", weight=3]; 2182[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Neg vuz11700) == GT)",fontsize=16,color="burlywood",shape="box"];5786[label="vuz11700/Succ vuz117000",fontsize=10,color="white",style="solid",shape="box"];2182 -> 5786[label="",style="solid", color="burlywood", weight=9]; 5786 -> 2202[label="",style="solid", color="burlywood", weight=3]; 5787[label="vuz11700/Zero",fontsize=10,color="white",style="solid",shape="box"];2182 -> 5787[label="",style="solid", color="burlywood", weight=9]; 5787 -> 2203[label="",style="solid", color="burlywood", weight=3]; 2183[label="signumReal1 (Integer (Neg (Succ vuz3400))) (primCmpInt (Neg (Succ vuz3400)) (Pos vuz11700) == GT)",fontsize=16,color="black",shape="box"];2183 -> 2204[label="",style="solid", color="black", weight=3]; 2184[label="signumReal1 (Integer (Neg (Succ vuz3400))) (primCmpInt (Neg (Succ vuz3400)) (Neg vuz11700) == GT)",fontsize=16,color="black",shape="box"];2184 -> 2205[label="",style="solid", color="black", weight=3]; 2185[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos vuz11700) == GT)",fontsize=16,color="burlywood",shape="box"];5788[label="vuz11700/Succ vuz117000",fontsize=10,color="white",style="solid",shape="box"];2185 -> 5788[label="",style="solid", color="burlywood", weight=9]; 5788 -> 2206[label="",style="solid", color="burlywood", weight=3]; 5789[label="vuz11700/Zero",fontsize=10,color="white",style="solid",shape="box"];2185 -> 5789[label="",style="solid", color="burlywood", weight=9]; 5789 -> 2207[label="",style="solid", color="burlywood", weight=3]; 2186[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Neg vuz11700) == GT)",fontsize=16,color="burlywood",shape="box"];5790[label="vuz11700/Succ vuz117000",fontsize=10,color="white",style="solid",shape="box"];2186 -> 5790[label="",style="solid", color="burlywood", weight=9]; 5790 -> 2208[label="",style="solid", color="burlywood", weight=3]; 5791[label="vuz11700/Zero",fontsize=10,color="white",style="solid",shape="box"];2186 -> 5791[label="",style="solid", color="burlywood", weight=9]; 5791 -> 2209[label="",style="solid", color="burlywood", weight=3]; 2188 -> 2031[label="",style="dashed", color="red", weight=0]; 2188[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2189 -> 2031[label="",style="dashed", color="red", weight=0]; 2189[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2187[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal1 (Integer vuz32) (Integer vuz32 >= vuz132) == vuz121) (abs (Integer vuz109)) (absReal1 (Integer vuz32) (Integer vuz32 >= vuz131))",fontsize=16,color="black",shape="triangle"];2187 -> 2210[label="",style="solid", color="black", weight=3]; 3507 -> 3385[label="",style="dashed", color="red", weight=0]; 3507[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS vuz1770 vuz1780)",fontsize=16,color="magenta"];3507 -> 3523[label="",style="dashed", color="magenta", weight=3]; 3507 -> 3524[label="",style="dashed", color="magenta", weight=3]; 3508[label="primDivNatS0 (Succ vuz175) (Succ vuz176) True",fontsize=16,color="black",shape="triangle"];3508 -> 3525[label="",style="solid", color="black", weight=3]; 3509[label="primDivNatS0 (Succ vuz175) (Succ vuz176) False",fontsize=16,color="black",shape="box"];3509 -> 3526[label="",style="solid", color="black", weight=3]; 3510 -> 3508[label="",style="dashed", color="red", weight=0]; 3510[label="primDivNatS0 (Succ vuz175) (Succ vuz176) True",fontsize=16,color="magenta"];1710[label="Succ vuz18000",fontsize=16,color="green",shape="box"];1711[label="Zero",fontsize=16,color="green",shape="box"];2304[label="primModNatS vuz900 (Succ vuz11600)",fontsize=16,color="burlywood",shape="triangle"];5792[label="vuz900/Succ vuz9000",fontsize=10,color="white",style="solid",shape="box"];2304 -> 5792[label="",style="solid", color="burlywood", weight=9]; 5792 -> 2341[label="",style="solid", color="burlywood", weight=3]; 5793[label="vuz900/Zero",fontsize=10,color="white",style="solid",shape="box"];2304 -> 5793[label="",style="solid", color="burlywood", weight=9]; 5793 -> 2342[label="",style="solid", color="burlywood", weight=3]; 2305 -> 2304[label="",style="dashed", color="red", weight=0]; 2305[label="primModNatS vuz900 (Succ vuz11600)",fontsize=16,color="magenta"];2305 -> 2343[label="",style="dashed", color="magenta", weight=3]; 2306 -> 2304[label="",style="dashed", color="red", weight=0]; 2306[label="primModNatS vuz900 (Succ vuz11600)",fontsize=16,color="magenta"];2306 -> 2344[label="",style="dashed", color="magenta", weight=3]; 2307 -> 2304[label="",style="dashed", color="red", weight=0]; 2307[label="primModNatS vuz900 (Succ vuz11600)",fontsize=16,color="magenta"];2307 -> 2345[label="",style="dashed", color="magenta", weight=3]; 2307 -> 2346[label="",style="dashed", color="magenta", weight=3]; 1759[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT)) (not (compare (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT)) (not (compare (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1759 -> 1823[label="",style="solid", color="black", weight=3]; 1760[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1760 -> 1824[label="",style="solid", color="black", weight=3]; 2198 -> 3113[label="",style="dashed", color="red", weight=0]; 2198[label="signumReal1 (Integer (Pos (Succ vuz3400))) (primCmpNat (Succ vuz3400) vuz11700 == GT)",fontsize=16,color="magenta"];2198 -> 3114[label="",style="dashed", color="magenta", weight=3]; 2198 -> 3115[label="",style="dashed", color="magenta", weight=3]; 2198 -> 3116[label="",style="dashed", color="magenta", weight=3]; 2199[label="signumReal1 (Integer (Pos (Succ vuz3400))) (GT == GT)",fontsize=16,color="black",shape="triangle"];2199 -> 2254[label="",style="solid", color="black", weight=3]; 2200[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos (Succ vuz117000)) == GT)",fontsize=16,color="black",shape="box"];2200 -> 2255[label="",style="solid", color="black", weight=3]; 2201[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos Zero) == GT)",fontsize=16,color="black",shape="box"];2201 -> 2256[label="",style="solid", color="black", weight=3]; 2202[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Neg (Succ vuz117000)) == GT)",fontsize=16,color="black",shape="box"];2202 -> 2257[label="",style="solid", color="black", weight=3]; 2203[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Neg Zero) == GT)",fontsize=16,color="black",shape="box"];2203 -> 2258[label="",style="solid", color="black", weight=3]; 2204[label="signumReal1 (Integer (Neg (Succ vuz3400))) (LT == GT)",fontsize=16,color="black",shape="triangle"];2204 -> 2259[label="",style="solid", color="black", weight=3]; 2205 -> 3701[label="",style="dashed", color="red", weight=0]; 2205[label="signumReal1 (Integer (Neg (Succ vuz3400))) (primCmpNat vuz11700 (Succ vuz3400) == GT)",fontsize=16,color="magenta"];2205 -> 3702[label="",style="dashed", color="magenta", weight=3]; 2205 -> 3703[label="",style="dashed", color="magenta", weight=3]; 2205 -> 3704[label="",style="dashed", color="magenta", weight=3]; 2206[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos (Succ vuz117000)) == GT)",fontsize=16,color="black",shape="box"];2206 -> 2262[label="",style="solid", color="black", weight=3]; 2207[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos Zero) == GT)",fontsize=16,color="black",shape="box"];2207 -> 2263[label="",style="solid", color="black", weight=3]; 2208[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Neg (Succ vuz117000)) == GT)",fontsize=16,color="black",shape="box"];2208 -> 2264[label="",style="solid", color="black", weight=3]; 2209[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Neg Zero) == GT)",fontsize=16,color="black",shape="box"];2209 -> 2265[label="",style="solid", color="black", weight=3]; 2210[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal1 (Integer vuz32) (compare (Integer vuz32) vuz132 /= LT) == vuz121) (abs (Integer vuz109)) (absReal1 (Integer vuz32) (compare (Integer vuz32) vuz132 /= LT))",fontsize=16,color="black",shape="box"];2210 -> 2266[label="",style="solid", color="black", weight=3]; 3523[label="vuz1770",fontsize=16,color="green",shape="box"];3524[label="vuz1780",fontsize=16,color="green",shape="box"];3525[label="Succ (primDivNatS (primMinusNatS (Succ vuz175) (Succ vuz176)) (Succ (Succ vuz176)))",fontsize=16,color="green",shape="box"];3525 -> 3532[label="",style="dashed", color="green", weight=3]; 3526[label="Zero",fontsize=16,color="green",shape="box"];2341[label="primModNatS (Succ vuz9000) (Succ vuz11600)",fontsize=16,color="black",shape="box"];2341 -> 2380[label="",style="solid", color="black", weight=3]; 2342[label="primModNatS Zero (Succ vuz11600)",fontsize=16,color="black",shape="box"];2342 -> 2381[label="",style="solid", color="black", weight=3]; 2343[label="vuz11600",fontsize=16,color="green",shape="box"];2344[label="vuz900",fontsize=16,color="green",shape="box"];2345[label="vuz11600",fontsize=16,color="green",shape="box"];2346[label="vuz900",fontsize=16,color="green",shape="box"];1823[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1823 -> 1891[label="",style="solid", color="black", weight=3]; 1824[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal2 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal2 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1824 -> 1892[label="",style="solid", color="black", weight=3]; 3114[label="Succ vuz3400",fontsize=16,color="green",shape="box"];3115[label="vuz3400",fontsize=16,color="green",shape="box"];3116[label="vuz11700",fontsize=16,color="green",shape="box"];3113[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat vuz163 vuz164 == GT)",fontsize=16,color="burlywood",shape="triangle"];5794[label="vuz163/Succ vuz1630",fontsize=10,color="white",style="solid",shape="box"];3113 -> 5794[label="",style="solid", color="burlywood", weight=9]; 5794 -> 3135[label="",style="solid", color="burlywood", weight=3]; 5795[label="vuz163/Zero",fontsize=10,color="white",style="solid",shape="box"];3113 -> 5795[label="",style="solid", color="burlywood", weight=9]; 5795 -> 3136[label="",style="solid", color="burlywood", weight=3]; 2254[label="signumReal1 (Integer (Pos (Succ vuz3400))) True",fontsize=16,color="black",shape="box"];2254 -> 2310[label="",style="solid", color="black", weight=3]; 2255[label="signumReal1 (Integer (Pos Zero)) (primCmpNat Zero (Succ vuz117000) == GT)",fontsize=16,color="black",shape="box"];2255 -> 2311[label="",style="solid", color="black", weight=3]; 2256[label="signumReal1 (Integer (Pos Zero)) (EQ == GT)",fontsize=16,color="black",shape="triangle"];2256 -> 2312[label="",style="solid", color="black", weight=3]; 2257[label="signumReal1 (Integer (Pos Zero)) (GT == GT)",fontsize=16,color="black",shape="box"];2257 -> 2313[label="",style="solid", color="black", weight=3]; 2258 -> 2256[label="",style="dashed", color="red", weight=0]; 2258[label="signumReal1 (Integer (Pos Zero)) (EQ == GT)",fontsize=16,color="magenta"];2259[label="signumReal1 (Integer (Neg (Succ vuz3400))) False",fontsize=16,color="black",shape="triangle"];2259 -> 2314[label="",style="solid", color="black", weight=3]; 3702[label="vuz11700",fontsize=16,color="green",shape="box"];3703[label="Succ vuz3400",fontsize=16,color="green",shape="box"];3704[label="vuz3400",fontsize=16,color="green",shape="box"];3701[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat vuz199 vuz200 == GT)",fontsize=16,color="burlywood",shape="triangle"];5796[label="vuz199/Succ vuz1990",fontsize=10,color="white",style="solid",shape="box"];3701 -> 5796[label="",style="solid", color="burlywood", weight=9]; 5796 -> 3732[label="",style="solid", color="burlywood", weight=3]; 5797[label="vuz199/Zero",fontsize=10,color="white",style="solid",shape="box"];3701 -> 5797[label="",style="solid", color="burlywood", weight=9]; 5797 -> 3733[label="",style="solid", color="burlywood", weight=3]; 2262[label="signumReal1 (Integer (Neg Zero)) (LT == GT)",fontsize=16,color="black",shape="box"];2262 -> 2317[label="",style="solid", color="black", weight=3]; 2263[label="signumReal1 (Integer (Neg Zero)) (EQ == GT)",fontsize=16,color="black",shape="triangle"];2263 -> 2318[label="",style="solid", color="black", weight=3]; 2264[label="signumReal1 (Integer (Neg Zero)) (primCmpNat (Succ vuz117000) Zero == GT)",fontsize=16,color="black",shape="box"];2264 -> 2319[label="",style="solid", color="black", weight=3]; 2265 -> 2263[label="",style="dashed", color="red", weight=0]; 2265[label="signumReal1 (Integer (Neg Zero)) (EQ == GT)",fontsize=16,color="magenta"];2266 -> 2884[label="",style="dashed", color="red", weight=0]; 2266[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal1 (Integer vuz32) (not (compare (Integer vuz32) vuz132 == LT)) == vuz121) (abs (Integer vuz109)) (absReal1 (Integer vuz32) (not (compare (Integer vuz32) vuz132 == LT)))",fontsize=16,color="magenta"];2266 -> 2885[label="",style="dashed", color="magenta", weight=3]; 2266 -> 2886[label="",style="dashed", color="magenta", weight=3]; 2266 -> 2887[label="",style="dashed", color="magenta", weight=3]; 2266 -> 2888[label="",style="dashed", color="magenta", weight=3]; 2266 -> 2889[label="",style="dashed", color="magenta", weight=3]; 2266 -> 2890[label="",style="dashed", color="magenta", weight=3]; 2266 -> 2891[label="",style="dashed", color="magenta", weight=3]; 2266 -> 2892[label="",style="dashed", color="magenta", weight=3]; 2266 -> 2893[label="",style="dashed", color="magenta", weight=3]; 3532 -> 1210[label="",style="dashed", color="red", weight=0]; 3532[label="primDivNatS (primMinusNatS (Succ vuz175) (Succ vuz176)) (Succ (Succ vuz176))",fontsize=16,color="magenta"];3532 -> 3535[label="",style="dashed", color="magenta", weight=3]; 3532 -> 3536[label="",style="dashed", color="magenta", weight=3]; 2380[label="primModNatS0 vuz9000 vuz11600 (primGEqNatS vuz9000 vuz11600)",fontsize=16,color="burlywood",shape="box"];5798[label="vuz9000/Succ vuz90000",fontsize=10,color="white",style="solid",shape="box"];2380 -> 5798[label="",style="solid", color="burlywood", weight=9]; 5798 -> 2417[label="",style="solid", color="burlywood", weight=3]; 5799[label="vuz9000/Zero",fontsize=10,color="white",style="solid",shape="box"];2380 -> 5799[label="",style="solid", color="burlywood", weight=9]; 5799 -> 2418[label="",style="solid", color="burlywood", weight=3]; 2381[label="Zero",fontsize=16,color="green",shape="box"];1891 -> 2090[label="",style="dashed", color="red", weight=0]; 1891[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="magenta"];1891 -> 2091[label="",style="dashed", color="magenta", weight=3]; 1891 -> 2092[label="",style="dashed", color="magenta", weight=3]; 1891 -> 2093[label="",style="dashed", color="magenta", weight=3]; 1892 -> 2111[label="",style="dashed", color="red", weight=0]; 1892[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)) >= fromInt (Pos Zero)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)) >= fromInt (Pos Zero)))",fontsize=16,color="magenta"];1892 -> 2112[label="",style="dashed", color="magenta", weight=3]; 1892 -> 2113[label="",style="dashed", color="magenta", weight=3]; 1892 -> 2114[label="",style="dashed", color="magenta", weight=3]; 1892 -> 2115[label="",style="dashed", color="magenta", weight=3]; 1892 -> 2116[label="",style="dashed", color="magenta", weight=3]; 1892 -> 2117[label="",style="dashed", color="magenta", weight=3]; 1892 -> 2118[label="",style="dashed", color="magenta", weight=3]; 3135[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat (Succ vuz1630) vuz164 == GT)",fontsize=16,color="burlywood",shape="box"];5800[label="vuz164/Succ vuz1640",fontsize=10,color="white",style="solid",shape="box"];3135 -> 5800[label="",style="solid", color="burlywood", weight=9]; 5800 -> 3164[label="",style="solid", color="burlywood", weight=3]; 5801[label="vuz164/Zero",fontsize=10,color="white",style="solid",shape="box"];3135 -> 5801[label="",style="solid", color="burlywood", weight=9]; 5801 -> 3165[label="",style="solid", color="burlywood", weight=3]; 3136[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat Zero vuz164 == GT)",fontsize=16,color="burlywood",shape="box"];5802[label="vuz164/Succ vuz1640",fontsize=10,color="white",style="solid",shape="box"];3136 -> 5802[label="",style="solid", color="burlywood", weight=9]; 5802 -> 3166[label="",style="solid", color="burlywood", weight=3]; 5803[label="vuz164/Zero",fontsize=10,color="white",style="solid",shape="box"];3136 -> 5803[label="",style="solid", color="burlywood", weight=9]; 5803 -> 3167[label="",style="solid", color="burlywood", weight=3]; 2311[label="signumReal1 (Integer (Pos Zero)) (LT == GT)",fontsize=16,color="black",shape="box"];2311 -> 2350[label="",style="solid", color="black", weight=3]; 2312[label="signumReal1 (Integer (Pos Zero)) False",fontsize=16,color="black",shape="triangle"];2312 -> 2351[label="",style="solid", color="black", weight=3]; 2313[label="signumReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];2313 -> 2352[label="",style="solid", color="black", weight=3]; 2314[label="signumReal0 (Integer (Neg (Succ vuz3400))) otherwise",fontsize=16,color="black",shape="box"];2314 -> 2353[label="",style="solid", color="black", weight=3]; 3732[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat (Succ vuz1990) vuz200 == GT)",fontsize=16,color="burlywood",shape="box"];5804[label="vuz200/Succ vuz2000",fontsize=10,color="white",style="solid",shape="box"];3732 -> 5804[label="",style="solid", color="burlywood", weight=9]; 5804 -> 3752[label="",style="solid", color="burlywood", weight=3]; 5805[label="vuz200/Zero",fontsize=10,color="white",style="solid",shape="box"];3732 -> 5805[label="",style="solid", color="burlywood", weight=9]; 5805 -> 3753[label="",style="solid", color="burlywood", weight=3]; 3733[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat Zero vuz200 == GT)",fontsize=16,color="burlywood",shape="box"];5806[label="vuz200/Succ vuz2000",fontsize=10,color="white",style="solid",shape="box"];3733 -> 5806[label="",style="solid", color="burlywood", weight=9]; 5806 -> 3754[label="",style="solid", color="burlywood", weight=3]; 5807[label="vuz200/Zero",fontsize=10,color="white",style="solid",shape="box"];3733 -> 5807[label="",style="solid", color="burlywood", weight=9]; 5807 -> 3755[label="",style="solid", color="burlywood", weight=3]; 2317[label="signumReal1 (Integer (Neg Zero)) False",fontsize=16,color="black",shape="triangle"];2317 -> 2356[label="",style="solid", color="black", weight=3]; 2318 -> 2317[label="",style="dashed", color="red", weight=0]; 2318[label="signumReal1 (Integer (Neg Zero)) False",fontsize=16,color="magenta"];2319[label="signumReal1 (Integer (Neg Zero)) (GT == GT)",fontsize=16,color="black",shape="box"];2319 -> 2357[label="",style="solid", color="black", weight=3]; 2885[label="vuz32",fontsize=16,color="green",shape="box"];2886[label="vuz121",fontsize=16,color="green",shape="box"];2887[label="vuz32",fontsize=16,color="green",shape="box"];2888[label="vuz32",fontsize=16,color="green",shape="box"];2889[label="vuz109",fontsize=16,color="green",shape="box"];2890[label="vuz32",fontsize=16,color="green",shape="box"];2891[label="vuz32",fontsize=16,color="green",shape="box"];2892[label="vuz132",fontsize=16,color="green",shape="box"];2893[label="vuz132",fontsize=16,color="green",shape="box"];2884[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (compare (Integer vuz160) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (compare (Integer vuz159) vuz119 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5808[label="vuz120/Integer vuz1200",fontsize=10,color="white",style="solid",shape="box"];2884 -> 5808[label="",style="solid", color="burlywood", weight=9]; 5808 -> 2912[label="",style="solid", color="burlywood", weight=3]; 3535[label="Succ vuz176",fontsize=16,color="green",shape="box"];3536 -> 2954[label="",style="dashed", color="red", weight=0]; 3536[label="primMinusNatS (Succ vuz175) (Succ vuz176)",fontsize=16,color="magenta"];3536 -> 3539[label="",style="dashed", color="magenta", weight=3]; 3536 -> 3540[label="",style="dashed", color="magenta", weight=3]; 2417[label="primModNatS0 (Succ vuz90000) vuz11600 (primGEqNatS (Succ vuz90000) vuz11600)",fontsize=16,color="burlywood",shape="box"];5809[label="vuz11600/Succ vuz116000",fontsize=10,color="white",style="solid",shape="box"];2417 -> 5809[label="",style="solid", color="burlywood", weight=9]; 5809 -> 2457[label="",style="solid", color="burlywood", weight=3]; 5810[label="vuz11600/Zero",fontsize=10,color="white",style="solid",shape="box"];2417 -> 5810[label="",style="solid", color="burlywood", weight=9]; 5810 -> 2458[label="",style="solid", color="burlywood", weight=3]; 2418[label="primModNatS0 Zero vuz11600 (primGEqNatS Zero vuz11600)",fontsize=16,color="burlywood",shape="box"];5811[label="vuz11600/Succ vuz116000",fontsize=10,color="white",style="solid",shape="box"];2418 -> 5811[label="",style="solid", color="burlywood", weight=9]; 5811 -> 2459[label="",style="solid", color="burlywood", weight=3]; 5812[label="vuz11600/Zero",fontsize=10,color="white",style="solid",shape="box"];2418 -> 5812[label="",style="solid", color="burlywood", weight=9]; 5812 -> 2460[label="",style="solid", color="burlywood", weight=3]; 2091 -> 2031[label="",style="dashed", color="red", weight=0]; 2091[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2092 -> 2031[label="",style="dashed", color="red", weight=0]; 2092[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2093 -> 2031[label="",style="dashed", color="red", weight=0]; 2093[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2090[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2090 -> 2141[label="",style="solid", color="black", weight=3]; 2112 -> 2031[label="",style="dashed", color="red", weight=0]; 2112[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2113 -> 2031[label="",style="dashed", color="red", weight=0]; 2113[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2114 -> 2031[label="",style="dashed", color="red", weight=0]; 2114[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2115 -> 2031[label="",style="dashed", color="red", weight=0]; 2115[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2116 -> 2031[label="",style="dashed", color="red", weight=0]; 2116[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2117 -> 2031[label="",style="dashed", color="red", weight=0]; 2117[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2118 -> 2031[label="",style="dashed", color="red", weight=0]; 2118[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2111[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz129 == LT))) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT)) >= vuz126) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz127 == LT))) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz128 == LT)) >= vuz125))",fontsize=16,color="black",shape="triangle"];2111 -> 2142[label="",style="solid", color="black", weight=3]; 3164[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat (Succ vuz1630) (Succ vuz1640) == GT)",fontsize=16,color="black",shape="box"];3164 -> 3223[label="",style="solid", color="black", weight=3]; 3165[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat (Succ vuz1630) Zero == GT)",fontsize=16,color="black",shape="box"];3165 -> 3224[label="",style="solid", color="black", weight=3]; 3166[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat Zero (Succ vuz1640) == GT)",fontsize=16,color="black",shape="box"];3166 -> 3225[label="",style="solid", color="black", weight=3]; 3167[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];3167 -> 3226[label="",style="solid", color="black", weight=3]; 2350 -> 2312[label="",style="dashed", color="red", weight=0]; 2350[label="signumReal1 (Integer (Pos Zero)) False",fontsize=16,color="magenta"];2351[label="signumReal0 (Integer (Pos Zero)) otherwise",fontsize=16,color="black",shape="box"];2351 -> 2386[label="",style="solid", color="black", weight=3]; 2352 -> 2310[label="",style="dashed", color="red", weight=0]; 2352[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2353[label="signumReal0 (Integer (Neg (Succ vuz3400))) True",fontsize=16,color="black",shape="box"];2353 -> 2387[label="",style="solid", color="black", weight=3]; 3752[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat (Succ vuz1990) (Succ vuz2000) == GT)",fontsize=16,color="black",shape="box"];3752 -> 3798[label="",style="solid", color="black", weight=3]; 3753[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat (Succ vuz1990) Zero == GT)",fontsize=16,color="black",shape="box"];3753 -> 3799[label="",style="solid", color="black", weight=3]; 3754[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat Zero (Succ vuz2000) == GT)",fontsize=16,color="black",shape="box"];3754 -> 3800[label="",style="solid", color="black", weight=3]; 3755[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];3755 -> 3801[label="",style="solid", color="black", weight=3]; 2356[label="signumReal0 (Integer (Neg Zero)) otherwise",fontsize=16,color="black",shape="box"];2356 -> 2392[label="",style="solid", color="black", weight=3]; 2357[label="signumReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];2357 -> 2393[label="",style="solid", color="black", weight=3]; 2912[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (compare (Integer vuz160) (Integer vuz1200) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (compare (Integer vuz159) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2912 -> 2955[label="",style="solid", color="black", weight=3]; 3539[label="Succ vuz175",fontsize=16,color="green",shape="box"];3540[label="Succ vuz176",fontsize=16,color="green",shape="box"];2954[label="primMinusNatS vuz154 vuz155",fontsize=16,color="burlywood",shape="triangle"];5813[label="vuz154/Succ vuz1540",fontsize=10,color="white",style="solid",shape="box"];2954 -> 5813[label="",style="solid", color="burlywood", weight=9]; 5813 -> 2996[label="",style="solid", color="burlywood", weight=3]; 5814[label="vuz154/Zero",fontsize=10,color="white",style="solid",shape="box"];2954 -> 5814[label="",style="solid", color="burlywood", weight=9]; 5814 -> 2997[label="",style="solid", color="burlywood", weight=3]; 2457[label="primModNatS0 (Succ vuz90000) (Succ vuz116000) (primGEqNatS (Succ vuz90000) (Succ vuz116000))",fontsize=16,color="black",shape="box"];2457 -> 2508[label="",style="solid", color="black", weight=3]; 2458[label="primModNatS0 (Succ vuz90000) Zero (primGEqNatS (Succ vuz90000) Zero)",fontsize=16,color="black",shape="box"];2458 -> 2509[label="",style="solid", color="black", weight=3]; 2459[label="primModNatS0 Zero (Succ vuz116000) (primGEqNatS Zero (Succ vuz116000))",fontsize=16,color="black",shape="box"];2459 -> 2510[label="",style="solid", color="black", weight=3]; 2460[label="primModNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];2460 -> 2511[label="",style="solid", color="black", weight=3]; 2141[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (primCmpInt vuz37 (Pos Zero) == LT))) (not (compare (absReal1 (Integer vuz37) (not (primCmpInt vuz37 (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (primCmpInt vuz37 (Pos Zero) == LT))) (not (compare (absReal1 (Integer vuz37) (not (primCmpInt vuz37 (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="burlywood",shape="box"];5815[label="vuz37/Pos vuz370",fontsize=10,color="white",style="solid",shape="box"];2141 -> 5815[label="",style="solid", color="burlywood", weight=9]; 5815 -> 2170[label="",style="solid", color="burlywood", weight=3]; 5816[label="vuz37/Neg vuz370",fontsize=10,color="white",style="solid",shape="box"];2141 -> 5816[label="",style="solid", color="burlywood", weight=9]; 5816 -> 2171[label="",style="solid", color="burlywood", weight=3]; 2142[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz129 == LT))) (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT))) vuz126 /= LT) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz127 == LT))) (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT))) vuz126 /= LT))",fontsize=16,color="black",shape="box"];2142 -> 2172[label="",style="solid", color="black", weight=3]; 3223 -> 3113[label="",style="dashed", color="red", weight=0]; 3223[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat vuz1630 vuz1640 == GT)",fontsize=16,color="magenta"];3223 -> 3291[label="",style="dashed", color="magenta", weight=3]; 3223 -> 3292[label="",style="dashed", color="magenta", weight=3]; 3224[label="signumReal1 (Integer (Pos (Succ vuz162))) (GT == GT)",fontsize=16,color="black",shape="box"];3224 -> 3293[label="",style="solid", color="black", weight=3]; 3225[label="signumReal1 (Integer (Pos (Succ vuz162))) (LT == GT)",fontsize=16,color="black",shape="box"];3225 -> 3294[label="",style="solid", color="black", weight=3]; 3226[label="signumReal1 (Integer (Pos (Succ vuz162))) (EQ == GT)",fontsize=16,color="black",shape="box"];3226 -> 3295[label="",style="solid", color="black", weight=3]; 2386[label="signumReal0 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];2386 -> 2423[label="",style="solid", color="black", weight=3]; 3798 -> 3701[label="",style="dashed", color="red", weight=0]; 3798[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat vuz1990 vuz2000 == GT)",fontsize=16,color="magenta"];3798 -> 3835[label="",style="dashed", color="magenta", weight=3]; 3798 -> 3836[label="",style="dashed", color="magenta", weight=3]; 3799[label="signumReal1 (Integer (Neg (Succ vuz198))) (GT == GT)",fontsize=16,color="black",shape="box"];3799 -> 3837[label="",style="solid", color="black", weight=3]; 3800[label="signumReal1 (Integer (Neg (Succ vuz198))) (LT == GT)",fontsize=16,color="black",shape="box"];3800 -> 3838[label="",style="solid", color="black", weight=3]; 3801[label="signumReal1 (Integer (Neg (Succ vuz198))) (EQ == GT)",fontsize=16,color="black",shape="box"];3801 -> 3839[label="",style="solid", color="black", weight=3]; 2392[label="signumReal0 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];2392 -> 2429[label="",style="solid", color="black", weight=3]; 2393 -> 2310[label="",style="dashed", color="red", weight=0]; 2393[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2955[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt vuz160 vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt vuz160 vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5817[label="vuz160/Pos vuz1600",fontsize=10,color="white",style="solid",shape="box"];2955 -> 5817[label="",style="solid", color="burlywood", weight=9]; 5817 -> 2998[label="",style="solid", color="burlywood", weight=3]; 5818[label="vuz160/Neg vuz1600",fontsize=10,color="white",style="solid",shape="box"];2955 -> 5818[label="",style="solid", color="burlywood", weight=9]; 5818 -> 2999[label="",style="solid", color="burlywood", weight=3]; 2996[label="primMinusNatS (Succ vuz1540) vuz155",fontsize=16,color="burlywood",shape="box"];5819[label="vuz155/Succ vuz1550",fontsize=10,color="white",style="solid",shape="box"];2996 -> 5819[label="",style="solid", color="burlywood", weight=9]; 5819 -> 3030[label="",style="solid", color="burlywood", weight=3]; 5820[label="vuz155/Zero",fontsize=10,color="white",style="solid",shape="box"];2996 -> 5820[label="",style="solid", color="burlywood", weight=9]; 5820 -> 3031[label="",style="solid", color="burlywood", weight=3]; 2997[label="primMinusNatS Zero vuz155",fontsize=16,color="burlywood",shape="box"];5821[label="vuz155/Succ vuz1550",fontsize=10,color="white",style="solid",shape="box"];2997 -> 5821[label="",style="solid", color="burlywood", weight=9]; 5821 -> 3032[label="",style="solid", color="burlywood", weight=3]; 5822[label="vuz155/Zero",fontsize=10,color="white",style="solid",shape="box"];2997 -> 5822[label="",style="solid", color="burlywood", weight=9]; 5822 -> 3033[label="",style="solid", color="burlywood", weight=3]; 2508 -> 3575[label="",style="dashed", color="red", weight=0]; 2508[label="primModNatS0 (Succ vuz90000) (Succ vuz116000) (primGEqNatS vuz90000 vuz116000)",fontsize=16,color="magenta"];2508 -> 3576[label="",style="dashed", color="magenta", weight=3]; 2508 -> 3577[label="",style="dashed", color="magenta", weight=3]; 2508 -> 3578[label="",style="dashed", color="magenta", weight=3]; 2508 -> 3579[label="",style="dashed", color="magenta", weight=3]; 2509[label="primModNatS0 (Succ vuz90000) Zero True",fontsize=16,color="black",shape="box"];2509 -> 2570[label="",style="solid", color="black", weight=3]; 2510[label="primModNatS0 Zero (Succ vuz116000) False",fontsize=16,color="black",shape="box"];2510 -> 2571[label="",style="solid", color="black", weight=3]; 2511[label="primModNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];2511 -> 2572[label="",style="solid", color="black", weight=3]; 2170[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="burlywood",shape="box"];5823[label="vuz370/Succ vuz3700",fontsize=10,color="white",style="solid",shape="box"];2170 -> 5823[label="",style="solid", color="burlywood", weight=9]; 5823 -> 2328[label="",style="solid", color="burlywood", weight=3]; 5824[label="vuz370/Zero",fontsize=10,color="white",style="solid",shape="box"];2170 -> 5824[label="",style="solid", color="burlywood", weight=9]; 5824 -> 2329[label="",style="solid", color="burlywood", weight=3]; 2171[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="burlywood",shape="box"];5825[label="vuz370/Succ vuz3700",fontsize=10,color="white",style="solid",shape="box"];2171 -> 5825[label="",style="solid", color="burlywood", weight=9]; 5825 -> 2330[label="",style="solid", color="burlywood", weight=3]; 5826[label="vuz370/Zero",fontsize=10,color="white",style="solid",shape="box"];2171 -> 5826[label="",style="solid", color="burlywood", weight=9]; 5826 -> 2331[label="",style="solid", color="burlywood", weight=3]; 2172[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz129 == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz127 == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5827[label="vuz130/Integer vuz1300",fontsize=10,color="white",style="solid",shape="box"];2172 -> 5827[label="",style="solid", color="burlywood", weight=9]; 5827 -> 2332[label="",style="solid", color="burlywood", weight=3]; 3291[label="vuz1630",fontsize=16,color="green",shape="box"];3292[label="vuz1640",fontsize=16,color="green",shape="box"];3293[label="signumReal1 (Integer (Pos (Succ vuz162))) True",fontsize=16,color="black",shape="box"];3293 -> 3316[label="",style="solid", color="black", weight=3]; 3294[label="signumReal1 (Integer (Pos (Succ vuz162))) False",fontsize=16,color="black",shape="triangle"];3294 -> 3317[label="",style="solid", color="black", weight=3]; 3295 -> 3294[label="",style="dashed", color="red", weight=0]; 3295[label="signumReal1 (Integer (Pos (Succ vuz162))) False",fontsize=16,color="magenta"];2423 -> 2387[label="",style="dashed", color="red", weight=0]; 2423[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3835[label="vuz1990",fontsize=16,color="green",shape="box"];3836[label="vuz2000",fontsize=16,color="green",shape="box"];3837[label="signumReal1 (Integer (Neg (Succ vuz198))) True",fontsize=16,color="black",shape="box"];3837 -> 3869[label="",style="solid", color="black", weight=3]; 3838[label="signumReal1 (Integer (Neg (Succ vuz198))) False",fontsize=16,color="black",shape="triangle"];3838 -> 3870[label="",style="solid", color="black", weight=3]; 3839 -> 3838[label="",style="dashed", color="red", weight=0]; 3839[label="signumReal1 (Integer (Neg (Succ vuz198))) False",fontsize=16,color="magenta"];2429 -> 2387[label="",style="dashed", color="red", weight=0]; 2429[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2998[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos vuz1600) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos vuz1600) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5828[label="vuz1600/Succ vuz16000",fontsize=10,color="white",style="solid",shape="box"];2998 -> 5828[label="",style="solid", color="burlywood", weight=9]; 5828 -> 3034[label="",style="solid", color="burlywood", weight=3]; 5829[label="vuz1600/Zero",fontsize=10,color="white",style="solid",shape="box"];2998 -> 5829[label="",style="solid", color="burlywood", weight=9]; 5829 -> 3035[label="",style="solid", color="burlywood", weight=3]; 2999[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg vuz1600) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg vuz1600) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5830[label="vuz1600/Succ vuz16000",fontsize=10,color="white",style="solid",shape="box"];2999 -> 5830[label="",style="solid", color="burlywood", weight=9]; 5830 -> 3036[label="",style="solid", color="burlywood", weight=3]; 5831[label="vuz1600/Zero",fontsize=10,color="white",style="solid",shape="box"];2999 -> 5831[label="",style="solid", color="burlywood", weight=9]; 5831 -> 3037[label="",style="solid", color="burlywood", weight=3]; 3030[label="primMinusNatS (Succ vuz1540) (Succ vuz1550)",fontsize=16,color="black",shape="box"];3030 -> 3077[label="",style="solid", color="black", weight=3]; 3031[label="primMinusNatS (Succ vuz1540) Zero",fontsize=16,color="black",shape="box"];3031 -> 3078[label="",style="solid", color="black", weight=3]; 3032[label="primMinusNatS Zero (Succ vuz1550)",fontsize=16,color="black",shape="box"];3032 -> 3079[label="",style="solid", color="black", weight=3]; 3033[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];3033 -> 3080[label="",style="solid", color="black", weight=3]; 3576[label="vuz90000",fontsize=16,color="green",shape="box"];3577[label="vuz116000",fontsize=16,color="green",shape="box"];3578[label="vuz90000",fontsize=16,color="green",shape="box"];3579[label="vuz116000",fontsize=16,color="green",shape="box"];3575[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS vuz193 vuz194)",fontsize=16,color="burlywood",shape="triangle"];5832[label="vuz193/Succ vuz1930",fontsize=10,color="white",style="solid",shape="box"];3575 -> 5832[label="",style="solid", color="burlywood", weight=9]; 5832 -> 3608[label="",style="solid", color="burlywood", weight=3]; 5833[label="vuz193/Zero",fontsize=10,color="white",style="solid",shape="box"];3575 -> 5833[label="",style="solid", color="burlywood", weight=9]; 5833 -> 3609[label="",style="solid", color="burlywood", weight=3]; 2570 -> 2304[label="",style="dashed", color="red", weight=0]; 2570[label="primModNatS (primMinusNatS (Succ vuz90000) Zero) (Succ Zero)",fontsize=16,color="magenta"];2570 -> 2614[label="",style="dashed", color="magenta", weight=3]; 2570 -> 2615[label="",style="dashed", color="magenta", weight=3]; 2571[label="Succ Zero",fontsize=16,color="green",shape="box"];2572 -> 2304[label="",style="dashed", color="red", weight=0]; 2572[label="primModNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];2572 -> 2616[label="",style="dashed", color="magenta", weight=3]; 2572 -> 2617[label="",style="dashed", color="magenta", weight=3]; 2328[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2328 -> 2366[label="",style="solid", color="black", weight=3]; 2329[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2329 -> 2367[label="",style="solid", color="black", weight=3]; 2330[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2330 -> 2368[label="",style="solid", color="black", weight=3]; 2331[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2331 -> 2369[label="",style="solid", color="black", weight=3]; 2332[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz129 == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer vuz1300) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz127 == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer vuz1300) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2332 -> 2370[label="",style="solid", color="black", weight=3]; 3316[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5834[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5834[label="",style="solid", color="blue", weight=9]; 5834 -> 3326[label="",style="solid", color="blue", weight=3]; 5835[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5835[label="",style="solid", color="blue", weight=9]; 5835 -> 3327[label="",style="solid", color="blue", weight=3]; 5836[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5836[label="",style="solid", color="blue", weight=9]; 5836 -> 3328[label="",style="solid", color="blue", weight=3]; 5837[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5837[label="",style="solid", color="blue", weight=9]; 5837 -> 3329[label="",style="solid", color="blue", weight=3]; 5838[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5838[label="",style="solid", color="blue", weight=9]; 5838 -> 3330[label="",style="solid", color="blue", weight=3]; 3317[label="signumReal0 (Integer (Pos (Succ vuz162))) otherwise",fontsize=16,color="black",shape="box"];3317 -> 3331[label="",style="solid", color="black", weight=3]; 3869[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5839[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5839[label="",style="solid", color="blue", weight=9]; 5839 -> 3922[label="",style="solid", color="blue", weight=3]; 5840[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5840[label="",style="solid", color="blue", weight=9]; 5840 -> 3923[label="",style="solid", color="blue", weight=3]; 5841[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5841[label="",style="solid", color="blue", weight=9]; 5841 -> 3924[label="",style="solid", color="blue", weight=3]; 5842[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5842[label="",style="solid", color="blue", weight=9]; 5842 -> 3925[label="",style="solid", color="blue", weight=3]; 5843[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5843[label="",style="solid", color="blue", weight=9]; 5843 -> 3926[label="",style="solid", color="blue", weight=3]; 3870[label="signumReal0 (Integer (Neg (Succ vuz198))) otherwise",fontsize=16,color="black",shape="box"];3870 -> 3927[label="",style="solid", color="black", weight=3]; 3034[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos (Succ vuz16000)) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos (Succ vuz16000)) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5844[label="vuz1200/Pos vuz12000",fontsize=10,color="white",style="solid",shape="box"];3034 -> 5844[label="",style="solid", color="burlywood", weight=9]; 5844 -> 3081[label="",style="solid", color="burlywood", weight=3]; 5845[label="vuz1200/Neg vuz12000",fontsize=10,color="white",style="solid",shape="box"];3034 -> 5845[label="",style="solid", color="burlywood", weight=9]; 5845 -> 3082[label="",style="solid", color="burlywood", weight=3]; 3035[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5846[label="vuz1200/Pos vuz12000",fontsize=10,color="white",style="solid",shape="box"];3035 -> 5846[label="",style="solid", color="burlywood", weight=9]; 5846 -> 3083[label="",style="solid", color="burlywood", weight=3]; 5847[label="vuz1200/Neg vuz12000",fontsize=10,color="white",style="solid",shape="box"];3035 -> 5847[label="",style="solid", color="burlywood", weight=9]; 5847 -> 3084[label="",style="solid", color="burlywood", weight=3]; 3036[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg (Succ vuz16000)) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg (Succ vuz16000)) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5848[label="vuz1200/Pos vuz12000",fontsize=10,color="white",style="solid",shape="box"];3036 -> 5848[label="",style="solid", color="burlywood", weight=9]; 5848 -> 3085[label="",style="solid", color="burlywood", weight=3]; 5849[label="vuz1200/Neg vuz12000",fontsize=10,color="white",style="solid",shape="box"];3036 -> 5849[label="",style="solid", color="burlywood", weight=9]; 5849 -> 3086[label="",style="solid", color="burlywood", weight=3]; 3037[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5850[label="vuz1200/Pos vuz12000",fontsize=10,color="white",style="solid",shape="box"];3037 -> 5850[label="",style="solid", color="burlywood", weight=9]; 5850 -> 3087[label="",style="solid", color="burlywood", weight=3]; 5851[label="vuz1200/Neg vuz12000",fontsize=10,color="white",style="solid",shape="box"];3037 -> 5851[label="",style="solid", color="burlywood", weight=9]; 5851 -> 3088[label="",style="solid", color="burlywood", weight=3]; 3077 -> 2954[label="",style="dashed", color="red", weight=0]; 3077[label="primMinusNatS vuz1540 vuz1550",fontsize=16,color="magenta"];3077 -> 3137[label="",style="dashed", color="magenta", weight=3]; 3077 -> 3138[label="",style="dashed", color="magenta", weight=3]; 3078[label="Succ vuz1540",fontsize=16,color="green",shape="box"];3079[label="Zero",fontsize=16,color="green",shape="box"];3080[label="Zero",fontsize=16,color="green",shape="box"];3608[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS (Succ vuz1930) vuz194)",fontsize=16,color="burlywood",shape="box"];5852[label="vuz194/Succ vuz1940",fontsize=10,color="white",style="solid",shape="box"];3608 -> 5852[label="",style="solid", color="burlywood", weight=9]; 5852 -> 3627[label="",style="solid", color="burlywood", weight=3]; 5853[label="vuz194/Zero",fontsize=10,color="white",style="solid",shape="box"];3608 -> 5853[label="",style="solid", color="burlywood", weight=9]; 5853 -> 3628[label="",style="solid", color="burlywood", weight=3]; 3609[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS Zero vuz194)",fontsize=16,color="burlywood",shape="box"];5854[label="vuz194/Succ vuz1940",fontsize=10,color="white",style="solid",shape="box"];3609 -> 5854[label="",style="solid", color="burlywood", weight=9]; 5854 -> 3629[label="",style="solid", color="burlywood", weight=3]; 5855[label="vuz194/Zero",fontsize=10,color="white",style="solid",shape="box"];3609 -> 5855[label="",style="solid", color="burlywood", weight=9]; 5855 -> 3630[label="",style="solid", color="burlywood", weight=3]; 2614[label="Zero",fontsize=16,color="green",shape="box"];2615 -> 1556[label="",style="dashed", color="red", weight=0]; 2615[label="primMinusNatS (Succ vuz90000) Zero",fontsize=16,color="magenta"];2615 -> 2655[label="",style="dashed", color="magenta", weight=3]; 2616[label="Zero",fontsize=16,color="green",shape="box"];2617 -> 1558[label="",style="dashed", color="red", weight=0]; 2617[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];2366[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) Zero == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) Zero == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2366 -> 2404[label="",style="solid", color="black", weight=3]; 2367[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2367 -> 2405[label="",style="solid", color="black", weight=3]; 2368[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2368 -> 2406[label="",style="solid", color="black", weight=3]; 2369[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2369 -> 2407[label="",style="solid", color="black", weight=3]; 2370[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (primCmpInt vuz37 vuz1300 == LT))) (not (compare (absReal1 (Integer vuz37) (not (primCmpInt vuz37 vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (primCmpInt vuz37 vuz1300 == LT))) (not (compare (absReal1 (Integer vuz37) (not (primCmpInt vuz37 vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5856[label="vuz37/Pos vuz370",fontsize=10,color="white",style="solid",shape="box"];2370 -> 5856[label="",style="solid", color="burlywood", weight=9]; 5856 -> 2408[label="",style="solid", color="burlywood", weight=3]; 5857[label="vuz37/Neg vuz370",fontsize=10,color="white",style="solid",shape="box"];2370 -> 5857[label="",style="solid", color="burlywood", weight=9]; 5857 -> 2409[label="",style="solid", color="burlywood", weight=3]; 3326 -> 2451[label="",style="dashed", color="red", weight=0]; 3326[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3327 -> 2310[label="",style="dashed", color="red", weight=0]; 3327[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3328 -> 2453[label="",style="dashed", color="red", weight=0]; 3328[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3329 -> 2454[label="",style="dashed", color="red", weight=0]; 3329[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3330 -> 584[label="",style="dashed", color="red", weight=0]; 3330[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3331[label="signumReal0 (Integer (Pos (Succ vuz162))) True",fontsize=16,color="black",shape="box"];3331 -> 3369[label="",style="solid", color="black", weight=3]; 3922 -> 2451[label="",style="dashed", color="red", weight=0]; 3922[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3923 -> 2310[label="",style="dashed", color="red", weight=0]; 3923[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3924 -> 2453[label="",style="dashed", color="red", weight=0]; 3924[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3925 -> 2454[label="",style="dashed", color="red", weight=0]; 3925[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3926 -> 584[label="",style="dashed", color="red", weight=0]; 3926[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3927[label="signumReal0 (Integer (Neg (Succ vuz198))) True",fontsize=16,color="black",shape="box"];3927 -> 3970[label="",style="solid", color="black", weight=3]; 3081[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos (Succ vuz16000)) (Pos vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos (Succ vuz16000)) (Pos vuz12000) == LT)))",fontsize=16,color="black",shape="box"];3081 -> 3139[label="",style="solid", color="black", weight=3]; 3082[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos (Succ vuz16000)) (Neg vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos (Succ vuz16000)) (Neg vuz12000) == LT)))",fontsize=16,color="black",shape="box"];3082 -> 3140[label="",style="solid", color="black", weight=3]; 3083[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Pos vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Pos vuz12000) == LT)))",fontsize=16,color="burlywood",shape="box"];5858[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3083 -> 5858[label="",style="solid", color="burlywood", weight=9]; 5858 -> 3141[label="",style="solid", color="burlywood", weight=3]; 5859[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3083 -> 5859[label="",style="solid", color="burlywood", weight=9]; 5859 -> 3142[label="",style="solid", color="burlywood", weight=3]; 3084[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Neg vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Neg vuz12000) == LT)))",fontsize=16,color="burlywood",shape="box"];5860[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3084 -> 5860[label="",style="solid", color="burlywood", weight=9]; 5860 -> 3143[label="",style="solid", color="burlywood", weight=3]; 5861[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3084 -> 5861[label="",style="solid", color="burlywood", weight=9]; 5861 -> 3144[label="",style="solid", color="burlywood", weight=3]; 3085[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg (Succ vuz16000)) (Pos vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg (Succ vuz16000)) (Pos vuz12000) == LT)))",fontsize=16,color="black",shape="box"];3085 -> 3145[label="",style="solid", color="black", weight=3]; 3086[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg (Succ vuz16000)) (Neg vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg (Succ vuz16000)) (Neg vuz12000) == LT)))",fontsize=16,color="black",shape="box"];3086 -> 3146[label="",style="solid", color="black", weight=3]; 3087[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Pos vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Pos vuz12000) == LT)))",fontsize=16,color="burlywood",shape="box"];5862[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3087 -> 5862[label="",style="solid", color="burlywood", weight=9]; 5862 -> 3147[label="",style="solid", color="burlywood", weight=3]; 5863[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3087 -> 5863[label="",style="solid", color="burlywood", weight=9]; 5863 -> 3148[label="",style="solid", color="burlywood", weight=3]; 3088[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Neg vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Neg vuz12000) == LT)))",fontsize=16,color="burlywood",shape="box"];5864[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3088 -> 5864[label="",style="solid", color="burlywood", weight=9]; 5864 -> 3149[label="",style="solid", color="burlywood", weight=3]; 5865[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3088 -> 5865[label="",style="solid", color="burlywood", weight=9]; 5865 -> 3150[label="",style="solid", color="burlywood", weight=3]; 3137[label="vuz1540",fontsize=16,color="green",shape="box"];3138[label="vuz1550",fontsize=16,color="green",shape="box"];3627[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS (Succ vuz1930) (Succ vuz1940))",fontsize=16,color="black",shape="box"];3627 -> 3634[label="",style="solid", color="black", weight=3]; 3628[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS (Succ vuz1930) Zero)",fontsize=16,color="black",shape="box"];3628 -> 3635[label="",style="solid", color="black", weight=3]; 3629[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS Zero (Succ vuz1940))",fontsize=16,color="black",shape="box"];3629 -> 3636[label="",style="solid", color="black", weight=3]; 3630[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];3630 -> 3637[label="",style="solid", color="black", weight=3]; 2655[label="vuz90000",fontsize=16,color="green",shape="box"];2404[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2404 -> 2441[label="",style="solid", color="black", weight=3]; 2405[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not False)) (not (compare (absReal1 (Integer (Pos Zero)) (not False)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not False)) (not (compare (absReal1 (Integer (Pos Zero)) (not False)) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2405 -> 2442[label="",style="solid", color="black", weight=3]; 2406[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not True)) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not True)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not True)) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not True)) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2406 -> 2443[label="",style="solid", color="black", weight=3]; 2407[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not False)) (not (compare (absReal1 (Integer (Neg Zero)) (not False)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not False)) (not (compare (absReal1 (Integer (Neg Zero)) (not False)) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2407 -> 2444[label="",style="solid", color="black", weight=3]; 2408[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5866[label="vuz370/Succ vuz3700",fontsize=10,color="white",style="solid",shape="box"];2408 -> 5866[label="",style="solid", color="burlywood", weight=9]; 5866 -> 2445[label="",style="solid", color="burlywood", weight=3]; 5867[label="vuz370/Zero",fontsize=10,color="white",style="solid",shape="box"];2408 -> 5867[label="",style="solid", color="burlywood", weight=9]; 5867 -> 2446[label="",style="solid", color="burlywood", weight=3]; 2409[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5868[label="vuz370/Succ vuz3700",fontsize=10,color="white",style="solid",shape="box"];2409 -> 5868[label="",style="solid", color="burlywood", weight=9]; 5868 -> 2447[label="",style="solid", color="burlywood", weight=3]; 5869[label="vuz370/Zero",fontsize=10,color="white",style="solid",shape="box"];2409 -> 5869[label="",style="solid", color="burlywood", weight=9]; 5869 -> 2448[label="",style="solid", color="burlywood", weight=3]; 3369[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5870[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5870[label="",style="solid", color="blue", weight=9]; 5870 -> 3376[label="",style="solid", color="blue", weight=3]; 5871[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5871[label="",style="solid", color="blue", weight=9]; 5871 -> 3377[label="",style="solid", color="blue", weight=3]; 5872[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5872[label="",style="solid", color="blue", weight=9]; 5872 -> 3378[label="",style="solid", color="blue", weight=3]; 5873[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5873[label="",style="solid", color="blue", weight=9]; 5873 -> 3379[label="",style="solid", color="blue", weight=3]; 5874[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5874[label="",style="solid", color="blue", weight=9]; 5874 -> 3380[label="",style="solid", color="blue", weight=3]; 3970[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5875[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5875[label="",style="solid", color="blue", weight=9]; 5875 -> 4010[label="",style="solid", color="blue", weight=3]; 5876[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5876[label="",style="solid", color="blue", weight=9]; 5876 -> 4011[label="",style="solid", color="blue", weight=3]; 5877[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5877[label="",style="solid", color="blue", weight=9]; 5877 -> 4012[label="",style="solid", color="blue", weight=3]; 5878[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5878[label="",style="solid", color="blue", weight=9]; 5878 -> 4013[label="",style="solid", color="blue", weight=3]; 5879[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5879[label="",style="solid", color="blue", weight=9]; 5879 -> 4014[label="",style="solid", color="blue", weight=3]; 3139[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz16000) vuz12000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz16000) vuz12000 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5880[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3139 -> 5880[label="",style="solid", color="burlywood", weight=9]; 5880 -> 3169[label="",style="solid", color="burlywood", weight=3]; 5881[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3139 -> 5881[label="",style="solid", color="burlywood", weight=9]; 5881 -> 3170[label="",style="solid", color="burlywood", weight=3]; 3140[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (GT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (GT == LT)))",fontsize=16,color="black",shape="triangle"];3140 -> 3171[label="",style="solid", color="black", weight=3]; 3141[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Pos (Succ vuz120000)) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Pos (Succ vuz120000)) == LT)))",fontsize=16,color="black",shape="box"];3141 -> 3172[label="",style="solid", color="black", weight=3]; 3142[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];3142 -> 3173[label="",style="solid", color="black", weight=3]; 3143[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Neg (Succ vuz120000)) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Neg (Succ vuz120000)) == LT)))",fontsize=16,color="black",shape="box"];3143 -> 3174[label="",style="solid", color="black", weight=3]; 3144[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)))",fontsize=16,color="black",shape="box"];3144 -> 3175[label="",style="solid", color="black", weight=3]; 3145[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (LT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (LT == LT)))",fontsize=16,color="black",shape="triangle"];3145 -> 3176[label="",style="solid", color="black", weight=3]; 3146[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat vuz12000 (Succ vuz16000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat vuz12000 (Succ vuz16000) == LT)))",fontsize=16,color="burlywood",shape="triangle"];5882[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3146 -> 5882[label="",style="solid", color="burlywood", weight=9]; 5882 -> 3177[label="",style="solid", color="burlywood", weight=3]; 5883[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3146 -> 5883[label="",style="solid", color="burlywood", weight=9]; 5883 -> 3178[label="",style="solid", color="burlywood", weight=3]; 3147[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Pos (Succ vuz120000)) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Pos (Succ vuz120000)) == LT)))",fontsize=16,color="black",shape="box"];3147 -> 3179[label="",style="solid", color="black", weight=3]; 3148[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];3148 -> 3180[label="",style="solid", color="black", weight=3]; 3149[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Neg (Succ vuz120000)) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Neg (Succ vuz120000)) == LT)))",fontsize=16,color="black",shape="box"];3149 -> 3181[label="",style="solid", color="black", weight=3]; 3150[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)))",fontsize=16,color="black",shape="box"];3150 -> 3182[label="",style="solid", color="black", weight=3]; 3634 -> 3575[label="",style="dashed", color="red", weight=0]; 3634[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS vuz1930 vuz1940)",fontsize=16,color="magenta"];3634 -> 3675[label="",style="dashed", color="magenta", weight=3]; 3634 -> 3676[label="",style="dashed", color="magenta", weight=3]; 3635[label="primModNatS0 (Succ vuz191) (Succ vuz192) True",fontsize=16,color="black",shape="triangle"];3635 -> 3677[label="",style="solid", color="black", weight=3]; 3636[label="primModNatS0 (Succ vuz191) (Succ vuz192) False",fontsize=16,color="black",shape="box"];3636 -> 3678[label="",style="solid", color="black", weight=3]; 3637 -> 3635[label="",style="dashed", color="red", weight=0]; 3637[label="primModNatS0 (Succ vuz191) (Succ vuz192) True",fontsize=16,color="magenta"];2441[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not False)) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not False)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not False)) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not False)) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2441 -> 2486[label="",style="solid", color="black", weight=3]; 2442[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) True) (not (compare (absReal1 (Integer (Pos Zero)) True) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) True) (not (compare (absReal1 (Integer (Pos Zero)) True) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2442 -> 2487[label="",style="solid", color="black", weight=3]; 2443[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) False) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) False) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) False) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) False) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2443 -> 2488[label="",style="solid", color="black", weight=3]; 2444[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) True) (not (compare (absReal1 (Integer (Neg Zero)) True) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) True) (not (compare (absReal1 (Integer (Neg Zero)) True) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2444 -> 2489[label="",style="solid", color="black", weight=3]; 2445[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5884[label="vuz1300/Pos vuz13000",fontsize=10,color="white",style="solid",shape="box"];2445 -> 5884[label="",style="solid", color="burlywood", weight=9]; 5884 -> 2490[label="",style="solid", color="burlywood", weight=3]; 5885[label="vuz1300/Neg vuz13000",fontsize=10,color="white",style="solid",shape="box"];2445 -> 5885[label="",style="solid", color="burlywood", weight=9]; 5885 -> 2491[label="",style="solid", color="burlywood", weight=3]; 2446[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5886[label="vuz1300/Pos vuz13000",fontsize=10,color="white",style="solid",shape="box"];2446 -> 5886[label="",style="solid", color="burlywood", weight=9]; 5886 -> 2492[label="",style="solid", color="burlywood", weight=3]; 5887[label="vuz1300/Neg vuz13000",fontsize=10,color="white",style="solid",shape="box"];2446 -> 5887[label="",style="solid", color="burlywood", weight=9]; 5887 -> 2493[label="",style="solid", color="burlywood", weight=3]; 2447[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5888[label="vuz1300/Pos vuz13000",fontsize=10,color="white",style="solid",shape="box"];2447 -> 5888[label="",style="solid", color="burlywood", weight=9]; 5888 -> 2494[label="",style="solid", color="burlywood", weight=3]; 5889[label="vuz1300/Neg vuz13000",fontsize=10,color="white",style="solid",shape="box"];2447 -> 5889[label="",style="solid", color="burlywood", weight=9]; 5889 -> 2495[label="",style="solid", color="burlywood", weight=3]; 2448[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5890[label="vuz1300/Pos vuz13000",fontsize=10,color="white",style="solid",shape="box"];2448 -> 5890[label="",style="solid", color="burlywood", weight=9]; 5890 -> 2496[label="",style="solid", color="burlywood", weight=3]; 5891[label="vuz1300/Neg vuz13000",fontsize=10,color="white",style="solid",shape="box"];2448 -> 5891[label="",style="solid", color="burlywood", weight=9]; 5891 -> 2497[label="",style="solid", color="burlywood", weight=3]; 3376 -> 2563[label="",style="dashed", color="red", weight=0]; 3376[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3377 -> 2387[label="",style="dashed", color="red", weight=0]; 3377[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3378 -> 2565[label="",style="dashed", color="red", weight=0]; 3378[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3379 -> 2566[label="",style="dashed", color="red", weight=0]; 3379[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3380 -> 711[label="",style="dashed", color="red", weight=0]; 3380[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4010 -> 2563[label="",style="dashed", color="red", weight=0]; 4010[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4011 -> 2387[label="",style="dashed", color="red", weight=0]; 4011[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4012 -> 2565[label="",style="dashed", color="red", weight=0]; 4012[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4013 -> 2566[label="",style="dashed", color="red", weight=0]; 4013[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4014 -> 711[label="",style="dashed", color="red", weight=0]; 4014[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3169[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz16000) (Succ vuz120000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz16000) (Succ vuz120000) == LT)))",fontsize=16,color="black",shape="box"];3169 -> 3228[label="",style="solid", color="black", weight=3]; 3170[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz16000) Zero == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz16000) Zero == LT)))",fontsize=16,color="black",shape="box"];3170 -> 3229[label="",style="solid", color="black", weight=3]; 3171[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not False) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not False))",fontsize=16,color="black",shape="triangle"];3171 -> 3230[label="",style="solid", color="black", weight=3]; 3172 -> 3146[label="",style="dashed", color="red", weight=0]; 3172[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero (Succ vuz120000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero (Succ vuz120000) == LT)))",fontsize=16,color="magenta"];3172 -> 3231[label="",style="dashed", color="magenta", weight=3]; 3172 -> 3232[label="",style="dashed", color="magenta", weight=3]; 3173[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="black",shape="triangle"];3173 -> 3233[label="",style="solid", color="black", weight=3]; 3174 -> 3140[label="",style="dashed", color="red", weight=0]; 3174[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (GT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (GT == LT)))",fontsize=16,color="magenta"];3175 -> 3173[label="",style="dashed", color="red", weight=0]; 3175[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="magenta"];3176[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not True) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not True))",fontsize=16,color="black",shape="box"];3176 -> 3234[label="",style="solid", color="black", weight=3]; 3177[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz120000) (Succ vuz16000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz120000) (Succ vuz16000) == LT)))",fontsize=16,color="black",shape="box"];3177 -> 3235[label="",style="solid", color="black", weight=3]; 3178[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero (Succ vuz16000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero (Succ vuz16000) == LT)))",fontsize=16,color="black",shape="box"];3178 -> 3236[label="",style="solid", color="black", weight=3]; 3179 -> 3145[label="",style="dashed", color="red", weight=0]; 3179[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (LT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (LT == LT)))",fontsize=16,color="magenta"];3180 -> 3173[label="",style="dashed", color="red", weight=0]; 3180[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="magenta"];3181 -> 3139[label="",style="dashed", color="red", weight=0]; 3181[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz120000) Zero == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz120000) Zero == LT)))",fontsize=16,color="magenta"];3181 -> 3237[label="",style="dashed", color="magenta", weight=3]; 3181 -> 3238[label="",style="dashed", color="magenta", weight=3]; 3182 -> 3173[label="",style="dashed", color="red", weight=0]; 3182[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="magenta"];3675[label="vuz1930",fontsize=16,color="green",shape="box"];3676[label="vuz1940",fontsize=16,color="green",shape="box"];3677 -> 2304[label="",style="dashed", color="red", weight=0]; 3677[label="primModNatS (primMinusNatS (Succ vuz191) (Succ vuz192)) (Succ (Succ vuz192))",fontsize=16,color="magenta"];3677 -> 3734[label="",style="dashed", color="magenta", weight=3]; 3677 -> 3735[label="",style="dashed", color="magenta", weight=3]; 3678[label="Succ (Succ vuz191)",fontsize=16,color="green",shape="box"];2486[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) True) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) True) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) True) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) True) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2486 -> 2543[label="",style="solid", color="black", weight=3]; 2487 -> 2884[label="",style="dashed", color="red", weight=0]; 2487[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (compare (Integer (Pos Zero)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer (Pos Zero)) (not (compare (Integer (Pos Zero)) vuz119 == LT)))",fontsize=16,color="magenta"];2487 -> 2894[label="",style="dashed", color="magenta", weight=3]; 2487 -> 2895[label="",style="dashed", color="magenta", weight=3]; 2487 -> 2896[label="",style="dashed", color="magenta", weight=3]; 2487 -> 2897[label="",style="dashed", color="magenta", weight=3]; 2488[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Neg (Succ vuz3700))) otherwise) (not (compare (absReal0 (Integer (Neg (Succ vuz3700))) otherwise) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Neg (Succ vuz3700))) otherwise) (not (compare (absReal0 (Integer (Neg (Succ vuz3700))) otherwise) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2488 -> 2545[label="",style="solid", color="black", weight=3]; 2489 -> 2884[label="",style="dashed", color="red", weight=0]; 2489[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (compare (Integer (Neg Zero)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer (Neg Zero)) (not (compare (Integer (Neg Zero)) vuz119 == LT)))",fontsize=16,color="magenta"];2489 -> 2898[label="",style="dashed", color="magenta", weight=3]; 2489 -> 2899[label="",style="dashed", color="magenta", weight=3]; 2489 -> 2900[label="",style="dashed", color="magenta", weight=3]; 2489 -> 2901[label="",style="dashed", color="magenta", weight=3]; 2490[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2490 -> 2547[label="",style="solid", color="black", weight=3]; 2491[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Neg vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Neg vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2491 -> 2548[label="",style="solid", color="black", weight=3]; 2492[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5892[label="vuz13000/Succ vuz130000",fontsize=10,color="white",style="solid",shape="box"];2492 -> 5892[label="",style="solid", color="burlywood", weight=9]; 5892 -> 2549[label="",style="solid", color="burlywood", weight=3]; 5893[label="vuz13000/Zero",fontsize=10,color="white",style="solid",shape="box"];2492 -> 5893[label="",style="solid", color="burlywood", weight=9]; 5893 -> 2550[label="",style="solid", color="burlywood", weight=3]; 2493[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5894[label="vuz13000/Succ vuz130000",fontsize=10,color="white",style="solid",shape="box"];2493 -> 5894[label="",style="solid", color="burlywood", weight=9]; 5894 -> 2551[label="",style="solid", color="burlywood", weight=3]; 5895[label="vuz13000/Zero",fontsize=10,color="white",style="solid",shape="box"];2493 -> 5895[label="",style="solid", color="burlywood", weight=9]; 5895 -> 2552[label="",style="solid", color="burlywood", weight=3]; 2494[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2494 -> 2553[label="",style="solid", color="black", weight=3]; 2495[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Neg vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Neg vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2495 -> 2554[label="",style="solid", color="black", weight=3]; 2496[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5896[label="vuz13000/Succ vuz130000",fontsize=10,color="white",style="solid",shape="box"];2496 -> 5896[label="",style="solid", color="burlywood", weight=9]; 5896 -> 2555[label="",style="solid", color="burlywood", weight=3]; 5897[label="vuz13000/Zero",fontsize=10,color="white",style="solid",shape="box"];2496 -> 5897[label="",style="solid", color="burlywood", weight=9]; 5897 -> 2556[label="",style="solid", color="burlywood", weight=3]; 2497[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5898[label="vuz13000/Succ vuz130000",fontsize=10,color="white",style="solid",shape="box"];2497 -> 5898[label="",style="solid", color="burlywood", weight=9]; 5898 -> 2557[label="",style="solid", color="burlywood", weight=3]; 5899[label="vuz13000/Zero",fontsize=10,color="white",style="solid",shape="box"];2497 -> 5899[label="",style="solid", color="burlywood", weight=9]; 5899 -> 2558[label="",style="solid", color="burlywood", weight=3]; 3228[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat vuz16000 vuz120000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat vuz16000 vuz120000 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5900[label="vuz16000/Succ vuz160000",fontsize=10,color="white",style="solid",shape="box"];3228 -> 5900[label="",style="solid", color="burlywood", weight=9]; 5900 -> 3301[label="",style="solid", color="burlywood", weight=3]; 5901[label="vuz16000/Zero",fontsize=10,color="white",style="solid",shape="box"];3228 -> 5901[label="",style="solid", color="burlywood", weight=9]; 5901 -> 3302[label="",style="solid", color="burlywood", weight=3]; 3229 -> 3140[label="",style="dashed", color="red", weight=0]; 3229[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (GT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (GT == LT)))",fontsize=16,color="magenta"];3230[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) True == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) True)",fontsize=16,color="black",shape="box"];3230 -> 3303[label="",style="solid", color="black", weight=3]; 3231[label="Zero",fontsize=16,color="green",shape="box"];3232[label="vuz120000",fontsize=16,color="green",shape="box"];3233 -> 3171[label="",style="dashed", color="red", weight=0]; 3233[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not False) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not False))",fontsize=16,color="magenta"];3234[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) False == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) False)",fontsize=16,color="black",shape="box"];3234 -> 3304[label="",style="solid", color="black", weight=3]; 3235 -> 3228[label="",style="dashed", color="red", weight=0]; 3235[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat vuz120000 vuz16000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat vuz120000 vuz16000 == LT)))",fontsize=16,color="magenta"];3235 -> 3305[label="",style="dashed", color="magenta", weight=3]; 3235 -> 3306[label="",style="dashed", color="magenta", weight=3]; 3236 -> 3145[label="",style="dashed", color="red", weight=0]; 3236[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (LT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (LT == LT)))",fontsize=16,color="magenta"];3237[label="Zero",fontsize=16,color="green",shape="box"];3238[label="vuz120000",fontsize=16,color="green",shape="box"];3734[label="Succ vuz192",fontsize=16,color="green",shape="box"];3735 -> 2954[label="",style="dashed", color="red", weight=0]; 3735[label="primMinusNatS (Succ vuz191) (Succ vuz192)",fontsize=16,color="magenta"];3735 -> 3756[label="",style="dashed", color="magenta", weight=3]; 3735 -> 3757[label="",style="dashed", color="magenta", weight=3]; 2543 -> 2884[label="",style="dashed", color="red", weight=0]; 2543[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (compare (Integer (Pos (Succ vuz3700))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer (Pos (Succ vuz3700))) (not (compare (Integer (Pos (Succ vuz3700))) vuz119 == LT)))",fontsize=16,color="magenta"];2543 -> 2902[label="",style="dashed", color="magenta", weight=3]; 2543 -> 2903[label="",style="dashed", color="magenta", weight=3]; 2543 -> 2904[label="",style="dashed", color="magenta", weight=3]; 2543 -> 2905[label="",style="dashed", color="magenta", weight=3]; 2894[label="Pos Zero",fontsize=16,color="green",shape="box"];2895[label="Pos Zero",fontsize=16,color="green",shape="box"];2896[label="Pos Zero",fontsize=16,color="green",shape="box"];2897[label="Pos Zero",fontsize=16,color="green",shape="box"];2545[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Neg (Succ vuz3700))) True) (not (compare (absReal0 (Integer (Neg (Succ vuz3700))) True) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Neg (Succ vuz3700))) True) (not (compare (absReal0 (Integer (Neg (Succ vuz3700))) True) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2545 -> 2729[label="",style="solid", color="black", weight=3]; 2898[label="Neg Zero",fontsize=16,color="green",shape="box"];2899[label="Neg Zero",fontsize=16,color="green",shape="box"];2900[label="Neg Zero",fontsize=16,color="green",shape="box"];2901[label="Neg Zero",fontsize=16,color="green",shape="box"];2547 -> 4224[label="",style="dashed", color="red", weight=0]; 2547[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) vuz13000 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) vuz13000 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) vuz13000 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) vuz13000 == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2547 -> 4225[label="",style="dashed", color="magenta", weight=3]; 2547 -> 4226[label="",style="dashed", color="magenta", weight=3]; 2547 -> 4227[label="",style="dashed", color="magenta", weight=3]; 2547 -> 4228[label="",style="dashed", color="magenta", weight=3]; 2547 -> 4229[label="",style="dashed", color="magenta", weight=3]; 2547 -> 4230[label="",style="dashed", color="magenta", weight=3]; 2547 -> 4231[label="",style="dashed", color="magenta", weight=3]; 2548 -> 2404[label="",style="dashed", color="red", weight=0]; 2548[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2548 -> 2733[label="",style="dashed", color="magenta", weight=3]; 2548 -> 2734[label="",style="dashed", color="magenta", weight=3]; 2548 -> 2735[label="",style="dashed", color="magenta", weight=3]; 2549[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz130000)) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz130000)) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2549 -> 2736[label="",style="solid", color="black", weight=3]; 2550[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2550 -> 2737[label="",style="solid", color="black", weight=3]; 2551[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz130000)) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz130000)) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2551 -> 2738[label="",style="solid", color="black", weight=3]; 2552[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2552 -> 2739[label="",style="solid", color="black", weight=3]; 2553 -> 2368[label="",style="dashed", color="red", weight=0]; 2553[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2553 -> 2740[label="",style="dashed", color="magenta", weight=3]; 2553 -> 2741[label="",style="dashed", color="magenta", weight=3]; 2553 -> 2742[label="",style="dashed", color="magenta", weight=3]; 2554 -> 4336[label="",style="dashed", color="red", weight=0]; 2554[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpNat vuz13000 (Succ vuz3700) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpNat vuz13000 (Succ vuz3700) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpNat vuz13000 (Succ vuz3700) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpNat vuz13000 (Succ vuz3700) == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2554 -> 4337[label="",style="dashed", color="magenta", weight=3]; 2554 -> 4338[label="",style="dashed", color="magenta", weight=3]; 2554 -> 4339[label="",style="dashed", color="magenta", weight=3]; 2554 -> 4340[label="",style="dashed", color="magenta", weight=3]; 2554 -> 4341[label="",style="dashed", color="magenta", weight=3]; 2554 -> 4342[label="",style="dashed", color="magenta", weight=3]; 2554 -> 4343[label="",style="dashed", color="magenta", weight=3]; 2555[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz130000)) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz130000)) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2555 -> 2745[label="",style="solid", color="black", weight=3]; 2556[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2556 -> 2746[label="",style="solid", color="black", weight=3]; 2557[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz130000)) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz130000)) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2557 -> 2747[label="",style="solid", color="black", weight=3]; 2558[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2558 -> 2748[label="",style="solid", color="black", weight=3]; 3301[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz160000) vuz120000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz160000) vuz120000 == LT)))",fontsize=16,color="burlywood",shape="box"];5902[label="vuz120000/Succ vuz1200000",fontsize=10,color="white",style="solid",shape="box"];3301 -> 5902[label="",style="solid", color="burlywood", weight=9]; 5902 -> 3318[label="",style="solid", color="burlywood", weight=3]; 5903[label="vuz120000/Zero",fontsize=10,color="white",style="solid",shape="box"];3301 -> 5903[label="",style="solid", color="burlywood", weight=9]; 5903 -> 3319[label="",style="solid", color="burlywood", weight=3]; 3302[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero vuz120000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero vuz120000 == LT)))",fontsize=16,color="burlywood",shape="box"];5904[label="vuz120000/Succ vuz1200000",fontsize=10,color="white",style="solid",shape="box"];3302 -> 5904[label="",style="solid", color="burlywood", weight=9]; 5904 -> 3320[label="",style="solid", color="burlywood", weight=3]; 5905[label="vuz120000/Zero",fontsize=10,color="white",style="solid",shape="box"];3302 -> 5905[label="",style="solid", color="burlywood", weight=9]; 5905 -> 3321[label="",style="solid", color="burlywood", weight=3]; 3303 -> 3372[label="",style="dashed", color="red", weight=0]; 3303[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer vuz158 == vuz118) (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="magenta"];3303 -> 3373[label="",style="dashed", color="magenta", weight=3]; 3304[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer vuz158) otherwise == vuz118) (abs (Integer vuz60)) (absReal0 (Integer vuz158) otherwise)",fontsize=16,color="black",shape="box"];3304 -> 3323[label="",style="solid", color="black", weight=3]; 3305[label="vuz120000",fontsize=16,color="green",shape="box"];3306[label="vuz16000",fontsize=16,color="green",shape="box"];3756[label="Succ vuz191",fontsize=16,color="green",shape="box"];3757[label="Succ vuz192",fontsize=16,color="green",shape="box"];2902[label="Pos (Succ vuz3700)",fontsize=16,color="green",shape="box"];2903[label="Pos (Succ vuz3700)",fontsize=16,color="green",shape="box"];2904[label="Pos (Succ vuz3700)",fontsize=16,color="green",shape="box"];2905[label="Pos (Succ vuz3700)",fontsize=16,color="green",shape="box"];2729[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (`negate` Integer (Neg (Succ vuz3700))) (not (compare (`negate` Integer (Neg (Succ vuz3700))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (`negate` Integer (Neg (Succ vuz3700))) (not (compare (`negate` Integer (Neg (Succ vuz3700))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2729 -> 2812[label="",style="solid", color="black", weight=3]; 4225[label="vuz3700",fontsize=16,color="green",shape="box"];4226[label="vuz59",fontsize=16,color="green",shape="box"];4227[label="Succ vuz3700",fontsize=16,color="green",shape="box"];4228[label="vuz60",fontsize=16,color="green",shape="box"];4229[label="vuz13000",fontsize=16,color="green",shape="box"];4230[label="vuz126",fontsize=16,color="green",shape="box"];4231[label="vuz124",fontsize=16,color="green",shape="box"];4224[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz208 vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz208 vuz209 == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz208 vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz208 vuz209 == LT))) vuz210 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5906[label="vuz208/Succ vuz2080",fontsize=10,color="white",style="solid",shape="box"];4224 -> 5906[label="",style="solid", color="burlywood", weight=9]; 5906 -> 4295[label="",style="solid", color="burlywood", weight=3]; 5907[label="vuz208/Zero",fontsize=10,color="white",style="solid",shape="box"];4224 -> 5907[label="",style="solid", color="burlywood", weight=9]; 5907 -> 4296[label="",style="solid", color="burlywood", weight=3]; 2733[label="vuz124",fontsize=16,color="green",shape="box"];2734[label="vuz126",fontsize=16,color="green",shape="box"];2735[label="vuz126",fontsize=16,color="green",shape="box"];2736[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz130000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz130000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz130000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz130000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2736 -> 2817[label="",style="solid", color="black", weight=3]; 2737 -> 2367[label="",style="dashed", color="red", weight=0]; 2737[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2737 -> 2818[label="",style="dashed", color="magenta", weight=3]; 2737 -> 2819[label="",style="dashed", color="magenta", weight=3]; 2737 -> 2820[label="",style="dashed", color="magenta", weight=3]; 2738[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (GT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (GT == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2738 -> 2821[label="",style="solid", color="black", weight=3]; 2739 -> 2367[label="",style="dashed", color="red", weight=0]; 2739[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2739 -> 2822[label="",style="dashed", color="magenta", weight=3]; 2739 -> 2823[label="",style="dashed", color="magenta", weight=3]; 2739 -> 2824[label="",style="dashed", color="magenta", weight=3]; 2740[label="vuz124",fontsize=16,color="green",shape="box"];2741[label="vuz126",fontsize=16,color="green",shape="box"];2742[label="vuz126",fontsize=16,color="green",shape="box"];4337[label="vuz126",fontsize=16,color="green",shape="box"];4338[label="vuz124",fontsize=16,color="green",shape="box"];4339[label="vuz59",fontsize=16,color="green",shape="box"];4340[label="vuz60",fontsize=16,color="green",shape="box"];4341[label="vuz13000",fontsize=16,color="green",shape="box"];4342[label="vuz3700",fontsize=16,color="green",shape="box"];4343[label="Succ vuz3700",fontsize=16,color="green",shape="box"];4336[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz216 vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz216 vuz217 == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz216 vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz216 vuz217 == LT))) vuz218 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5908[label="vuz216/Succ vuz2160",fontsize=10,color="white",style="solid",shape="box"];4336 -> 5908[label="",style="solid", color="burlywood", weight=9]; 5908 -> 4407[label="",style="solid", color="burlywood", weight=3]; 5909[label="vuz216/Zero",fontsize=10,color="white",style="solid",shape="box"];4336 -> 5909[label="",style="solid", color="burlywood", weight=9]; 5909 -> 4408[label="",style="solid", color="burlywood", weight=3]; 2745[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (LT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (LT == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2745 -> 2827[label="",style="solid", color="black", weight=3]; 2746 -> 2369[label="",style="dashed", color="red", weight=0]; 2746[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2746 -> 2828[label="",style="dashed", color="magenta", weight=3]; 2746 -> 2829[label="",style="dashed", color="magenta", weight=3]; 2746 -> 2830[label="",style="dashed", color="magenta", weight=3]; 2747[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz130000) Zero == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz130000) Zero == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz130000) Zero == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz130000) Zero == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2747 -> 2831[label="",style="solid", color="black", weight=3]; 2748 -> 2369[label="",style="dashed", color="red", weight=0]; 2748[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2748 -> 2832[label="",style="dashed", color="magenta", weight=3]; 2748 -> 2833[label="",style="dashed", color="magenta", weight=3]; 2748 -> 2834[label="",style="dashed", color="magenta", weight=3]; 3318[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz160000) (Succ vuz1200000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz160000) (Succ vuz1200000) == LT)))",fontsize=16,color="black",shape="box"];3318 -> 3332[label="",style="solid", color="black", weight=3]; 3319[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz160000) Zero == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz160000) Zero == LT)))",fontsize=16,color="black",shape="box"];3319 -> 3333[label="",style="solid", color="black", weight=3]; 3320[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero (Succ vuz1200000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero (Succ vuz1200000) == LT)))",fontsize=16,color="black",shape="box"];3320 -> 3334[label="",style="solid", color="black", weight=3]; 3321[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero Zero == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero Zero == LT)))",fontsize=16,color="black",shape="box"];3321 -> 3335[label="",style="solid", color="black", weight=3]; 3373[label="Integer vuz158 == vuz118",fontsize=16,color="burlywood",shape="triangle"];5910[label="vuz118/Integer vuz1180",fontsize=10,color="white",style="solid",shape="box"];3373 -> 5910[label="",style="solid", color="burlywood", weight=9]; 5910 -> 3381[label="",style="solid", color="burlywood", weight=3]; 3372[label="Integer vuz59 `quot` gcd0Gcd'1 vuz173 (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="burlywood",shape="triangle"];5911[label="vuz173/False",fontsize=10,color="white",style="solid",shape="box"];3372 -> 5911[label="",style="solid", color="burlywood", weight=9]; 5911 -> 3382[label="",style="solid", color="burlywood", weight=3]; 5912[label="vuz173/True",fontsize=10,color="white",style="solid",shape="box"];3372 -> 5912[label="",style="solid", color="burlywood", weight=9]; 5912 -> 3383[label="",style="solid", color="burlywood", weight=3]; 3323[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer vuz158) True == vuz118) (abs (Integer vuz60)) (absReal0 (Integer vuz158) True)",fontsize=16,color="black",shape="box"];3323 -> 3337[label="",style="solid", color="black", weight=3]; 2812 -> 2884[label="",style="dashed", color="red", weight=0]; 2812[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (primNegInt (Neg (Succ vuz3700)))) (not (compare (Integer (primNegInt (Neg (Succ vuz3700)))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer (primNegInt (Neg (Succ vuz3700)))) (not (compare (Integer (primNegInt (Neg (Succ vuz3700)))) vuz119 == LT)))",fontsize=16,color="magenta"];2812 -> 2906[label="",style="dashed", color="magenta", weight=3]; 2812 -> 2907[label="",style="dashed", color="magenta", weight=3]; 2812 -> 2908[label="",style="dashed", color="magenta", weight=3]; 2812 -> 2909[label="",style="dashed", color="magenta", weight=3]; 4295[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) vuz209 == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) vuz209 == LT))) vuz210 == LT)))",fontsize=16,color="burlywood",shape="box"];5913[label="vuz209/Succ vuz2090",fontsize=10,color="white",style="solid",shape="box"];4295 -> 5913[label="",style="solid", color="burlywood", weight=9]; 5913 -> 4409[label="",style="solid", color="burlywood", weight=3]; 5914[label="vuz209/Zero",fontsize=10,color="white",style="solid",shape="box"];4295 -> 5914[label="",style="solid", color="burlywood", weight=9]; 5914 -> 4410[label="",style="solid", color="burlywood", weight=3]; 4296[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero vuz209 == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero vuz209 == LT))) vuz210 == LT)))",fontsize=16,color="burlywood",shape="box"];5915[label="vuz209/Succ vuz2090",fontsize=10,color="white",style="solid",shape="box"];4296 -> 5915[label="",style="solid", color="burlywood", weight=9]; 5915 -> 4411[label="",style="solid", color="burlywood", weight=3]; 5916[label="vuz209/Zero",fontsize=10,color="white",style="solid",shape="box"];4296 -> 5916[label="",style="solid", color="burlywood", weight=9]; 5916 -> 4412[label="",style="solid", color="burlywood", weight=3]; 2817[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (LT == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (LT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (LT == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (LT == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2817 -> 2926[label="",style="solid", color="black", weight=3]; 2818[label="vuz124",fontsize=16,color="green",shape="box"];2819[label="vuz126",fontsize=16,color="green",shape="box"];2820[label="vuz126",fontsize=16,color="green",shape="box"];2821 -> 2405[label="",style="dashed", color="red", weight=0]; 2821[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not False)) (not (compare (absReal1 (Integer (Pos Zero)) (not False)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not False)) (not (compare (absReal1 (Integer (Pos Zero)) (not False)) vuz126 == LT)))",fontsize=16,color="magenta"];2821 -> 2927[label="",style="dashed", color="magenta", weight=3]; 2821 -> 2928[label="",style="dashed", color="magenta", weight=3]; 2821 -> 2929[label="",style="dashed", color="magenta", weight=3]; 2822[label="vuz124",fontsize=16,color="green",shape="box"];2823[label="vuz126",fontsize=16,color="green",shape="box"];2824[label="vuz126",fontsize=16,color="green",shape="box"];4407[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) vuz217 == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) vuz217 == LT))) vuz218 == LT)))",fontsize=16,color="burlywood",shape="box"];5917[label="vuz217/Succ vuz2170",fontsize=10,color="white",style="solid",shape="box"];4407 -> 5917[label="",style="solid", color="burlywood", weight=9]; 5917 -> 4435[label="",style="solid", color="burlywood", weight=3]; 5918[label="vuz217/Zero",fontsize=10,color="white",style="solid",shape="box"];4407 -> 5918[label="",style="solid", color="burlywood", weight=9]; 5918 -> 4436[label="",style="solid", color="burlywood", weight=3]; 4408[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero vuz217 == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero vuz217 == LT))) vuz218 == LT)))",fontsize=16,color="burlywood",shape="box"];5919[label="vuz217/Succ vuz2170",fontsize=10,color="white",style="solid",shape="box"];4408 -> 5919[label="",style="solid", color="burlywood", weight=9]; 5919 -> 4437[label="",style="solid", color="burlywood", weight=3]; 5920[label="vuz217/Zero",fontsize=10,color="white",style="solid",shape="box"];4408 -> 5920[label="",style="solid", color="burlywood", weight=9]; 5920 -> 4438[label="",style="solid", color="burlywood", weight=3]; 2827[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not True)) (not (compare (absReal1 (Integer (Neg Zero)) (not True)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not True)) (not (compare (absReal1 (Integer (Neg Zero)) (not True)) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2827 -> 2935[label="",style="solid", color="black", weight=3]; 2828[label="vuz124",fontsize=16,color="green",shape="box"];2829[label="vuz126",fontsize=16,color="green",shape="box"];2830[label="vuz126",fontsize=16,color="green",shape="box"];2831[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (GT == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (GT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (GT == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (GT == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2831 -> 2936[label="",style="solid", color="black", weight=3]; 2832[label="vuz124",fontsize=16,color="green",shape="box"];2833[label="vuz126",fontsize=16,color="green",shape="box"];2834[label="vuz126",fontsize=16,color="green",shape="box"];3332 -> 3228[label="",style="dashed", color="red", weight=0]; 3332[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat vuz160000 vuz1200000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat vuz160000 vuz1200000 == LT)))",fontsize=16,color="magenta"];3332 -> 3370[label="",style="dashed", color="magenta", weight=3]; 3332 -> 3371[label="",style="dashed", color="magenta", weight=3]; 3333 -> 3140[label="",style="dashed", color="red", weight=0]; 3333[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (GT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (GT == LT)))",fontsize=16,color="magenta"];3334 -> 3145[label="",style="dashed", color="red", weight=0]; 3334[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (LT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (LT == LT)))",fontsize=16,color="magenta"];3335 -> 3173[label="",style="dashed", color="red", weight=0]; 3335[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="magenta"];3381[label="Integer vuz158 == Integer vuz1180",fontsize=16,color="black",shape="box"];3381 -> 3429[label="",style="solid", color="black", weight=3]; 3382[label="Integer vuz59 `quot` gcd0Gcd'1 False (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="black",shape="box"];3382 -> 3430[label="",style="solid", color="black", weight=3]; 3383[label="Integer vuz59 `quot` gcd0Gcd'1 True (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="black",shape="box"];3383 -> 3431[label="",style="solid", color="black", weight=3]; 3337[label="Integer vuz59 `quot` gcd0Gcd'1 (`negate` Integer vuz158 == vuz118) (abs (Integer vuz60)) (`negate` Integer vuz158)",fontsize=16,color="black",shape="box"];3337 -> 3384[label="",style="solid", color="black", weight=3]; 2906 -> 471[label="",style="dashed", color="red", weight=0]; 2906[label="primNegInt (Neg (Succ vuz3700))",fontsize=16,color="magenta"];2906 -> 2950[label="",style="dashed", color="magenta", weight=3]; 2907 -> 471[label="",style="dashed", color="red", weight=0]; 2907[label="primNegInt (Neg (Succ vuz3700))",fontsize=16,color="magenta"];2907 -> 2951[label="",style="dashed", color="magenta", weight=3]; 2908 -> 471[label="",style="dashed", color="red", weight=0]; 2908[label="primNegInt (Neg (Succ vuz3700))",fontsize=16,color="magenta"];2908 -> 2952[label="",style="dashed", color="magenta", weight=3]; 2909 -> 471[label="",style="dashed", color="red", weight=0]; 2909[label="primNegInt (Neg (Succ vuz3700))",fontsize=16,color="magenta"];2909 -> 2953[label="",style="dashed", color="magenta", weight=3]; 4409[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) (Succ vuz2090) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) (Succ vuz2090) == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) (Succ vuz2090) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) (Succ vuz2090) == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4409 -> 4439[label="",style="solid", color="black", weight=3]; 4410[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) Zero == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) Zero == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4410 -> 4440[label="",style="solid", color="black", weight=3]; 4411[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero (Succ vuz2090) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero (Succ vuz2090) == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero (Succ vuz2090) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero (Succ vuz2090) == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4411 -> 4441[label="",style="solid", color="black", weight=3]; 4412[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero Zero == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero Zero == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4412 -> 4442[label="",style="solid", color="black", weight=3]; 2926[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not True)) (not (compare (absReal1 (Integer (Pos Zero)) (not True)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not True)) (not (compare (absReal1 (Integer (Pos Zero)) (not True)) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2926 -> 2968[label="",style="solid", color="black", weight=3]; 2927[label="vuz124",fontsize=16,color="green",shape="box"];2928[label="vuz126",fontsize=16,color="green",shape="box"];2929[label="vuz126",fontsize=16,color="green",shape="box"];4435[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) (Succ vuz2170) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) (Succ vuz2170) == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) (Succ vuz2170) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) (Succ vuz2170) == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4435 -> 4477[label="",style="solid", color="black", weight=3]; 4436[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) Zero == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) Zero == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) Zero == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) Zero == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4436 -> 4478[label="",style="solid", color="black", weight=3]; 4437[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero (Succ vuz2170) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero (Succ vuz2170) == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero (Succ vuz2170) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero (Succ vuz2170) == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4437 -> 4479[label="",style="solid", color="black", weight=3]; 4438[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero Zero == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero Zero == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero Zero == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero Zero == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4438 -> 4480[label="",style="solid", color="black", weight=3]; 2935[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) False) (not (compare (absReal1 (Integer (Neg Zero)) False) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) False) (not (compare (absReal1 (Integer (Neg Zero)) False) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2935 -> 2973[label="",style="solid", color="black", weight=3]; 2936 -> 2407[label="",style="dashed", color="red", weight=0]; 2936[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not False)) (not (compare (absReal1 (Integer (Neg Zero)) (not False)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not False)) (not (compare (absReal1 (Integer (Neg Zero)) (not False)) vuz126 == LT)))",fontsize=16,color="magenta"];2936 -> 2974[label="",style="dashed", color="magenta", weight=3]; 2936 -> 2975[label="",style="dashed", color="magenta", weight=3]; 2936 -> 2976[label="",style="dashed", color="magenta", weight=3]; 3370[label="vuz160000",fontsize=16,color="green",shape="box"];3371[label="vuz1200000",fontsize=16,color="green",shape="box"];3429 -> 1699[label="",style="dashed", color="red", weight=0]; 3429[label="primEqInt vuz158 vuz1180",fontsize=16,color="magenta"];3429 -> 3460[label="",style="dashed", color="magenta", weight=3]; 3429 -> 3461[label="",style="dashed", color="magenta", weight=3]; 3430[label="Integer vuz59 `quot` gcd0Gcd'0 (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="black",shape="box"];3430 -> 3462[label="",style="solid", color="black", weight=3]; 3431[label="Integer vuz59 `quot` abs (Integer vuz60)",fontsize=16,color="black",shape="box"];3431 -> 3463[label="",style="solid", color="black", weight=3]; 3384 -> 3372[label="",style="dashed", color="red", weight=0]; 3384[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primNegInt vuz158) == vuz118) (abs (Integer vuz60)) (Integer (primNegInt vuz158))",fontsize=16,color="magenta"];3384 -> 3432[label="",style="dashed", color="magenta", weight=3]; 3384 -> 3433[label="",style="dashed", color="magenta", weight=3]; 2950[label="Neg (Succ vuz3700)",fontsize=16,color="green",shape="box"];2951[label="Neg (Succ vuz3700)",fontsize=16,color="green",shape="box"];2952[label="Neg (Succ vuz3700)",fontsize=16,color="green",shape="box"];2953[label="Neg (Succ vuz3700)",fontsize=16,color="green",shape="box"];4439 -> 4224[label="",style="dashed", color="red", weight=0]; 4439[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz2080 vuz2090 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz2080 vuz2090 == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz2080 vuz2090 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz2080 vuz2090 == LT))) vuz210 == LT)))",fontsize=16,color="magenta"];4439 -> 4481[label="",style="dashed", color="magenta", weight=3]; 4439 -> 4482[label="",style="dashed", color="magenta", weight=3]; 4440 -> 2404[label="",style="dashed", color="red", weight=0]; 4440[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (GT == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (GT == LT))) vuz210 == LT)))",fontsize=16,color="magenta"];4440 -> 4483[label="",style="dashed", color="magenta", weight=3]; 4440 -> 4484[label="",style="dashed", color="magenta", weight=3]; 4440 -> 4485[label="",style="dashed", color="magenta", weight=3]; 4440 -> 4486[label="",style="dashed", color="magenta", weight=3]; 4440 -> 4487[label="",style="dashed", color="magenta", weight=3]; 4440 -> 4488[label="",style="dashed", color="magenta", weight=3]; 4441[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (LT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (LT == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (LT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (LT == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4441 -> 4489[label="",style="solid", color="black", weight=3]; 4442[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (EQ == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (EQ == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4442 -> 4490[label="",style="solid", color="black", weight=3]; 2968[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) False) (not (compare (absReal1 (Integer (Pos Zero)) False) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) False) (not (compare (absReal1 (Integer (Pos Zero)) False) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2968 -> 3009[label="",style="solid", color="black", weight=3]; 4477 -> 4336[label="",style="dashed", color="red", weight=0]; 4477[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz2160 vuz2170 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz2160 vuz2170 == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz2160 vuz2170 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz2160 vuz2170 == LT))) vuz218 == LT)))",fontsize=16,color="magenta"];4477 -> 4494[label="",style="dashed", color="magenta", weight=3]; 4477 -> 4495[label="",style="dashed", color="magenta", weight=3]; 4478[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (GT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (GT == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (GT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (GT == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4478 -> 4496[label="",style="solid", color="black", weight=3]; 4479 -> 2368[label="",style="dashed", color="red", weight=0]; 4479[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (LT == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (LT == LT))) vuz218 == LT)))",fontsize=16,color="magenta"];4479 -> 4497[label="",style="dashed", color="magenta", weight=3]; 4479 -> 4498[label="",style="dashed", color="magenta", weight=3]; 4479 -> 4499[label="",style="dashed", color="magenta", weight=3]; 4479 -> 4500[label="",style="dashed", color="magenta", weight=3]; 4479 -> 4501[label="",style="dashed", color="magenta", weight=3]; 4479 -> 4502[label="",style="dashed", color="magenta", weight=3]; 4480[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (EQ == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (EQ == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4480 -> 4503[label="",style="solid", color="black", weight=3]; 2973[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Neg Zero)) otherwise) (not (compare (absReal0 (Integer (Neg Zero)) otherwise) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Neg Zero)) otherwise) (not (compare (absReal0 (Integer (Neg Zero)) otherwise) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2973 -> 3014[label="",style="solid", color="black", weight=3]; 2974[label="vuz124",fontsize=16,color="green",shape="box"];2975[label="vuz126",fontsize=16,color="green",shape="box"];2976[label="vuz126",fontsize=16,color="green",shape="box"];3460[label="vuz1180",fontsize=16,color="green",shape="box"];3461[label="vuz158",fontsize=16,color="green",shape="box"];3462[label="Integer vuz59 `quot` gcd0Gcd' (Integer vuz158) (abs (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3462 -> 3516[label="",style="solid", color="black", weight=3]; 3463[label="Integer vuz59 `quot` absReal (Integer vuz60)",fontsize=16,color="black",shape="box"];3463 -> 3517[label="",style="solid", color="black", weight=3]; 3432 -> 471[label="",style="dashed", color="red", weight=0]; 3432[label="primNegInt vuz158",fontsize=16,color="magenta"];3432 -> 3464[label="",style="dashed", color="magenta", weight=3]; 3433 -> 3373[label="",style="dashed", color="red", weight=0]; 3433[label="Integer (primNegInt vuz158) == vuz118",fontsize=16,color="magenta"];3433 -> 3465[label="",style="dashed", color="magenta", weight=3]; 4481[label="vuz2080",fontsize=16,color="green",shape="box"];4482[label="vuz2090",fontsize=16,color="green",shape="box"];4483[label="vuz211",fontsize=16,color="green",shape="box"];4484[label="vuz212",fontsize=16,color="green",shape="box"];4485[label="vuz206",fontsize=16,color="green",shape="box"];4486[label="vuz207",fontsize=16,color="green",shape="box"];4487[label="vuz210",fontsize=16,color="green",shape="box"];4488[label="vuz210",fontsize=16,color="green",shape="box"];4489[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not True)) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not True)) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not True)) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not True)) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4489 -> 4504[label="",style="solid", color="black", weight=3]; 4490 -> 2441[label="",style="dashed", color="red", weight=0]; 4490[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not False)) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not False)) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not False)) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not False)) vuz210 == LT)))",fontsize=16,color="magenta"];4490 -> 4505[label="",style="dashed", color="magenta", weight=3]; 4490 -> 4506[label="",style="dashed", color="magenta", weight=3]; 4490 -> 4507[label="",style="dashed", color="magenta", weight=3]; 4490 -> 4508[label="",style="dashed", color="magenta", weight=3]; 4490 -> 4509[label="",style="dashed", color="magenta", weight=3]; 4490 -> 4510[label="",style="dashed", color="magenta", weight=3]; 3009[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Pos Zero)) otherwise) (not (compare (absReal0 (Integer (Pos Zero)) otherwise) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Pos Zero)) otherwise) (not (compare (absReal0 (Integer (Pos Zero)) otherwise) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3009 -> 3054[label="",style="solid", color="black", weight=3]; 4494[label="vuz2160",fontsize=16,color="green",shape="box"];4495[label="vuz2170",fontsize=16,color="green",shape="box"];4496[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not False)) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not False)) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not False)) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not False)) vuz218 == LT)))",fontsize=16,color="black",shape="triangle"];4496 -> 4549[label="",style="solid", color="black", weight=3]; 4497[label="vuz219",fontsize=16,color="green",shape="box"];4498[label="vuz220",fontsize=16,color="green",shape="box"];4499[label="vuz214",fontsize=16,color="green",shape="box"];4500[label="vuz215",fontsize=16,color="green",shape="box"];4501[label="vuz218",fontsize=16,color="green",shape="box"];4502[label="vuz218",fontsize=16,color="green",shape="box"];4503 -> 4496[label="",style="dashed", color="red", weight=0]; 4503[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not False)) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not False)) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not False)) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not False)) vuz218 == LT)))",fontsize=16,color="magenta"];3014[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Neg Zero)) True) (not (compare (absReal0 (Integer (Neg Zero)) True) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Neg Zero)) True) (not (compare (absReal0 (Integer (Neg Zero)) True) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3014 -> 3063[label="",style="solid", color="black", weight=3]; 3516[label="Integer vuz59 `quot` gcd0Gcd'2 (Integer vuz158) (abs (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3516 -> 3527[label="",style="solid", color="black", weight=3]; 3517[label="Integer vuz59 `quot` absReal2 (Integer vuz60)",fontsize=16,color="black",shape="box"];3517 -> 3528[label="",style="solid", color="black", weight=3]; 3464[label="vuz158",fontsize=16,color="green",shape="box"];3465 -> 471[label="",style="dashed", color="red", weight=0]; 3465[label="primNegInt vuz158",fontsize=16,color="magenta"];3465 -> 3518[label="",style="dashed", color="magenta", weight=3]; 4504[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) False) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) False) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) False) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) False) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4504 -> 4550[label="",style="solid", color="black", weight=3]; 4505[label="vuz211",fontsize=16,color="green",shape="box"];4506[label="vuz212",fontsize=16,color="green",shape="box"];4507[label="vuz206",fontsize=16,color="green",shape="box"];4508[label="vuz207",fontsize=16,color="green",shape="box"];4509[label="vuz210",fontsize=16,color="green",shape="box"];4510[label="vuz210",fontsize=16,color="green",shape="box"];3054[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Pos Zero)) True) (not (compare (absReal0 (Integer (Pos Zero)) True) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Pos Zero)) True) (not (compare (absReal0 (Integer (Pos Zero)) True) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3054 -> 3106[label="",style="solid", color="black", weight=3]; 4549[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) True) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) True) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) True) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) True) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4549 -> 4594[label="",style="solid", color="black", weight=3]; 3063[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (`negate` Integer (Neg Zero)) (not (compare (`negate` Integer (Neg Zero)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (`negate` Integer (Neg Zero)) (not (compare (`negate` Integer (Neg Zero)) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3063 -> 3112[label="",style="solid", color="black", weight=3]; 3527 -> 3533[label="",style="dashed", color="red", weight=0]; 3527[label="Integer vuz59 `quot` gcd0Gcd'1 (abs (Integer vuz60) `rem` Integer vuz158 == fromInt (Pos Zero)) (Integer vuz158) (abs (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="magenta"];3527 -> 3534[label="",style="dashed", color="magenta", weight=3]; 3528 -> 3537[label="",style="dashed", color="red", weight=0]; 3528[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (Integer vuz60 >= fromInt (Pos Zero))",fontsize=16,color="magenta"];3528 -> 3538[label="",style="dashed", color="magenta", weight=3]; 3518[label="vuz158",fontsize=16,color="green",shape="box"];4550[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Pos (Succ vuz207))) otherwise) (not (compare (absReal0 (Integer (Pos (Succ vuz207))) otherwise) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal0 (Integer (Pos (Succ vuz207))) otherwise) (not (compare (absReal0 (Integer (Pos (Succ vuz207))) otherwise) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4550 -> 4595[label="",style="solid", color="black", weight=3]; 3106[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (`negate` Integer (Pos Zero)) (not (compare (`negate` Integer (Pos Zero)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (`negate` Integer (Pos Zero)) (not (compare (`negate` Integer (Pos Zero)) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3106 -> 3206[label="",style="solid", color="black", weight=3]; 4594 -> 2884[label="",style="dashed", color="red", weight=0]; 4594[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz215))) (not (compare (Integer (Neg (Succ vuz215))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (Integer (Neg (Succ vuz215))) (not (compare (Integer (Neg (Succ vuz215))) vuz218 == LT)))",fontsize=16,color="magenta"];4594 -> 4620[label="",style="dashed", color="magenta", weight=3]; 4594 -> 4621[label="",style="dashed", color="magenta", weight=3]; 4594 -> 4622[label="",style="dashed", color="magenta", weight=3]; 4594 -> 4623[label="",style="dashed", color="magenta", weight=3]; 4594 -> 4624[label="",style="dashed", color="magenta", weight=3]; 4594 -> 4625[label="",style="dashed", color="magenta", weight=3]; 4594 -> 4626[label="",style="dashed", color="magenta", weight=3]; 4594 -> 4627[label="",style="dashed", color="magenta", weight=3]; 4594 -> 4628[label="",style="dashed", color="magenta", weight=3]; 3112 -> 2884[label="",style="dashed", color="red", weight=0]; 3112[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (primNegInt (Neg Zero))) (not (compare (Integer (primNegInt (Neg Zero))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (Integer (primNegInt (Neg Zero))) (not (compare (Integer (primNegInt (Neg Zero))) vuz126 == LT)))",fontsize=16,color="magenta"];3112 -> 3212[label="",style="dashed", color="magenta", weight=3]; 3112 -> 3213[label="",style="dashed", color="magenta", weight=3]; 3112 -> 3214[label="",style="dashed", color="magenta", weight=3]; 3112 -> 3215[label="",style="dashed", color="magenta", weight=3]; 3112 -> 3216[label="",style="dashed", color="magenta", weight=3]; 3112 -> 3217[label="",style="dashed", color="magenta", weight=3]; 3112 -> 3218[label="",style="dashed", color="magenta", weight=3]; 3534 -> 2031[label="",style="dashed", color="red", weight=0]; 3534[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];3533[label="Integer vuz59 `quot` gcd0Gcd'1 (abs (Integer vuz60) `rem` Integer vuz158 == vuz186) (Integer vuz158) (abs (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3533 -> 3541[label="",style="solid", color="black", weight=3]; 3538 -> 2031[label="",style="dashed", color="red", weight=0]; 3538[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];3537[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (Integer vuz60 >= vuz187)",fontsize=16,color="black",shape="triangle"];3537 -> 3542[label="",style="solid", color="black", weight=3]; 4595[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Pos (Succ vuz207))) True) (not (compare (absReal0 (Integer (Pos (Succ vuz207))) True) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal0 (Integer (Pos (Succ vuz207))) True) (not (compare (absReal0 (Integer (Pos (Succ vuz207))) True) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4595 -> 4629[label="",style="solid", color="black", weight=3]; 3206 -> 2884[label="",style="dashed", color="red", weight=0]; 3206[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (primNegInt (Pos Zero))) (not (compare (Integer (primNegInt (Pos Zero))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (Integer (primNegInt (Pos Zero))) (not (compare (Integer (primNegInt (Pos Zero))) vuz126 == LT)))",fontsize=16,color="magenta"];3206 -> 3261[label="",style="dashed", color="magenta", weight=3]; 3206 -> 3262[label="",style="dashed", color="magenta", weight=3]; 3206 -> 3263[label="",style="dashed", color="magenta", weight=3]; 3206 -> 3264[label="",style="dashed", color="magenta", weight=3]; 3206 -> 3265[label="",style="dashed", color="magenta", weight=3]; 3206 -> 3266[label="",style="dashed", color="magenta", weight=3]; 3206 -> 3267[label="",style="dashed", color="magenta", weight=3]; 4620[label="Neg (Succ vuz215)",fontsize=16,color="green",shape="box"];4621[label="vuz219",fontsize=16,color="green",shape="box"];4622[label="Neg (Succ vuz215)",fontsize=16,color="green",shape="box"];4623[label="Neg (Succ vuz215)",fontsize=16,color="green",shape="box"];4624[label="vuz220",fontsize=16,color="green",shape="box"];4625[label="vuz214",fontsize=16,color="green",shape="box"];4626[label="Neg (Succ vuz215)",fontsize=16,color="green",shape="box"];4627[label="vuz218",fontsize=16,color="green",shape="box"];4628[label="vuz218",fontsize=16,color="green",shape="box"];3212 -> 471[label="",style="dashed", color="red", weight=0]; 3212[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3212 -> 3283[label="",style="dashed", color="magenta", weight=3]; 3213[label="vuz124",fontsize=16,color="green",shape="box"];3214 -> 471[label="",style="dashed", color="red", weight=0]; 3214[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3214 -> 3284[label="",style="dashed", color="magenta", weight=3]; 3215 -> 471[label="",style="dashed", color="red", weight=0]; 3215[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3215 -> 3285[label="",style="dashed", color="magenta", weight=3]; 3216 -> 471[label="",style="dashed", color="red", weight=0]; 3216[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3216 -> 3286[label="",style="dashed", color="magenta", weight=3]; 3217[label="vuz126",fontsize=16,color="green",shape="box"];3218[label="vuz126",fontsize=16,color="green",shape="box"];3541[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal (Integer vuz60) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3541 -> 3547[label="",style="solid", color="black", weight=3]; 3542[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (compare (Integer vuz60) vuz187 /= LT)",fontsize=16,color="black",shape="box"];3542 -> 3548[label="",style="solid", color="black", weight=3]; 4629[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (`negate` Integer (Pos (Succ vuz207))) (not (compare (`negate` Integer (Pos (Succ vuz207))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (`negate` Integer (Pos (Succ vuz207))) (not (compare (`negate` Integer (Pos (Succ vuz207))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4629 -> 4657[label="",style="solid", color="black", weight=3]; 3261 -> 471[label="",style="dashed", color="red", weight=0]; 3261[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3261 -> 3348[label="",style="dashed", color="magenta", weight=3]; 3262[label="vuz124",fontsize=16,color="green",shape="box"];3263 -> 471[label="",style="dashed", color="red", weight=0]; 3263[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3263 -> 3349[label="",style="dashed", color="magenta", weight=3]; 3264 -> 471[label="",style="dashed", color="red", weight=0]; 3264[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3264 -> 3350[label="",style="dashed", color="magenta", weight=3]; 3265 -> 471[label="",style="dashed", color="red", weight=0]; 3265[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3265 -> 3351[label="",style="dashed", color="magenta", weight=3]; 3266[label="vuz126",fontsize=16,color="green",shape="box"];3267[label="vuz126",fontsize=16,color="green",shape="box"];3283[label="Neg Zero",fontsize=16,color="green",shape="box"];3284[label="Neg Zero",fontsize=16,color="green",shape="box"];3285[label="Neg Zero",fontsize=16,color="green",shape="box"];3286[label="Neg Zero",fontsize=16,color="green",shape="box"];3547[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal2 (Integer vuz60) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal2 (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3547 -> 3610[label="",style="solid", color="black", weight=3]; 3548[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (not (compare (Integer vuz60) vuz187 == LT))",fontsize=16,color="burlywood",shape="box"];5921[label="vuz187/Integer vuz1870",fontsize=10,color="white",style="solid",shape="box"];3548 -> 5921[label="",style="solid", color="burlywood", weight=9]; 5921 -> 3611[label="",style="solid", color="burlywood", weight=3]; 4657 -> 2884[label="",style="dashed", color="red", weight=0]; 4657[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (Integer (primNegInt (Pos (Succ vuz207)))) (not (compare (Integer (primNegInt (Pos (Succ vuz207)))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (Integer (primNegInt (Pos (Succ vuz207)))) (not (compare (Integer (primNegInt (Pos (Succ vuz207)))) vuz210 == LT)))",fontsize=16,color="magenta"];4657 -> 4688[label="",style="dashed", color="magenta", weight=3]; 4657 -> 4689[label="",style="dashed", color="magenta", weight=3]; 4657 -> 4690[label="",style="dashed", color="magenta", weight=3]; 4657 -> 4691[label="",style="dashed", color="magenta", weight=3]; 4657 -> 4692[label="",style="dashed", color="magenta", weight=3]; 4657 -> 4693[label="",style="dashed", color="magenta", weight=3]; 4657 -> 4694[label="",style="dashed", color="magenta", weight=3]; 4657 -> 4695[label="",style="dashed", color="magenta", weight=3]; 4657 -> 4696[label="",style="dashed", color="magenta", weight=3]; 3348[label="Pos Zero",fontsize=16,color="green",shape="box"];3349[label="Pos Zero",fontsize=16,color="green",shape="box"];3350[label="Pos Zero",fontsize=16,color="green",shape="box"];3351[label="Pos Zero",fontsize=16,color="green",shape="box"];3610 -> 3631[label="",style="dashed", color="red", weight=0]; 3610[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (Integer vuz60 >= fromInt (Pos Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (Integer vuz60 >= fromInt (Pos Zero)) `rem` Integer vuz158)",fontsize=16,color="magenta"];3610 -> 3632[label="",style="dashed", color="magenta", weight=3]; 3610 -> 3633[label="",style="dashed", color="magenta", weight=3]; 3611[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (not (compare (Integer vuz60) (Integer vuz1870) == LT))",fontsize=16,color="black",shape="box"];3611 -> 3638[label="",style="solid", color="black", weight=3]; 4688 -> 471[label="",style="dashed", color="red", weight=0]; 4688[label="primNegInt (Pos (Succ vuz207))",fontsize=16,color="magenta"];4688 -> 4723[label="",style="dashed", color="magenta", weight=3]; 4689[label="vuz211",fontsize=16,color="green",shape="box"];4690 -> 471[label="",style="dashed", color="red", weight=0]; 4690[label="primNegInt (Pos (Succ vuz207))",fontsize=16,color="magenta"];4690 -> 4724[label="",style="dashed", color="magenta", weight=3]; 4691 -> 471[label="",style="dashed", color="red", weight=0]; 4691[label="primNegInt (Pos (Succ vuz207))",fontsize=16,color="magenta"];4691 -> 4725[label="",style="dashed", color="magenta", weight=3]; 4692[label="vuz212",fontsize=16,color="green",shape="box"];4693[label="vuz206",fontsize=16,color="green",shape="box"];4694 -> 471[label="",style="dashed", color="red", weight=0]; 4694[label="primNegInt (Pos (Succ vuz207))",fontsize=16,color="magenta"];4694 -> 4726[label="",style="dashed", color="magenta", weight=3]; 4695[label="vuz210",fontsize=16,color="green",shape="box"];4696[label="vuz210",fontsize=16,color="green",shape="box"];3632 -> 2031[label="",style="dashed", color="red", weight=0]; 3632[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];3633 -> 2031[label="",style="dashed", color="red", weight=0]; 3633[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];3631[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (Integer vuz60 >= vuz196) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (Integer vuz60 >= vuz195) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3631 -> 3639[label="",style="solid", color="black", weight=3]; 3638[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (not (primCmpInt vuz60 vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5922[label="vuz60/Pos vuz600",fontsize=10,color="white",style="solid",shape="box"];3638 -> 5922[label="",style="solid", color="burlywood", weight=9]; 5922 -> 3679[label="",style="solid", color="burlywood", weight=3]; 5923[label="vuz60/Neg vuz600",fontsize=10,color="white",style="solid",shape="box"];3638 -> 5923[label="",style="solid", color="burlywood", weight=9]; 5923 -> 3680[label="",style="solid", color="burlywood", weight=3]; 4723[label="Pos (Succ vuz207)",fontsize=16,color="green",shape="box"];4724[label="Pos (Succ vuz207)",fontsize=16,color="green",shape="box"];4725[label="Pos (Succ vuz207)",fontsize=16,color="green",shape="box"];4726[label="Pos (Succ vuz207)",fontsize=16,color="green",shape="box"];3639[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (compare (Integer vuz60) vuz196 /= LT) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (compare (Integer vuz60) vuz196 /= LT) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3639 -> 3681[label="",style="solid", color="black", weight=3]; 3679[label="Integer vuz59 `quot` absReal1 (Integer (Pos vuz600)) (not (primCmpInt (Pos vuz600) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5924[label="vuz600/Succ vuz6000",fontsize=10,color="white",style="solid",shape="box"];3679 -> 5924[label="",style="solid", color="burlywood", weight=9]; 5924 -> 3736[label="",style="solid", color="burlywood", weight=3]; 5925[label="vuz600/Zero",fontsize=10,color="white",style="solid",shape="box"];3679 -> 5925[label="",style="solid", color="burlywood", weight=9]; 5925 -> 3737[label="",style="solid", color="burlywood", weight=3]; 3680[label="Integer vuz59 `quot` absReal1 (Integer (Neg vuz600)) (not (primCmpInt (Neg vuz600) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5926[label="vuz600/Succ vuz6000",fontsize=10,color="white",style="solid",shape="box"];3680 -> 5926[label="",style="solid", color="burlywood", weight=9]; 5926 -> 3738[label="",style="solid", color="burlywood", weight=3]; 5927[label="vuz600/Zero",fontsize=10,color="white",style="solid",shape="box"];3680 -> 5927[label="",style="solid", color="burlywood", weight=9]; 5927 -> 3739[label="",style="solid", color="burlywood", weight=3]; 3681[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (not (compare (Integer vuz60) vuz196 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (not (compare (Integer vuz60) vuz196 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5928[label="vuz196/Integer vuz1960",fontsize=10,color="white",style="solid",shape="box"];3681 -> 5928[label="",style="solid", color="burlywood", weight=9]; 5928 -> 3740[label="",style="solid", color="burlywood", weight=3]; 3736[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5929[label="vuz1870/Pos vuz18700",fontsize=10,color="white",style="solid",shape="box"];3736 -> 5929[label="",style="solid", color="burlywood", weight=9]; 5929 -> 3758[label="",style="solid", color="burlywood", weight=3]; 5930[label="vuz1870/Neg vuz18700",fontsize=10,color="white",style="solid",shape="box"];3736 -> 5930[label="",style="solid", color="burlywood", weight=9]; 5930 -> 3759[label="",style="solid", color="burlywood", weight=3]; 3737[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5931[label="vuz1870/Pos vuz18700",fontsize=10,color="white",style="solid",shape="box"];3737 -> 5931[label="",style="solid", color="burlywood", weight=9]; 5931 -> 3760[label="",style="solid", color="burlywood", weight=3]; 5932[label="vuz1870/Neg vuz18700",fontsize=10,color="white",style="solid",shape="box"];3737 -> 5932[label="",style="solid", color="burlywood", weight=9]; 5932 -> 3761[label="",style="solid", color="burlywood", weight=3]; 3738[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5933[label="vuz1870/Pos vuz18700",fontsize=10,color="white",style="solid",shape="box"];3738 -> 5933[label="",style="solid", color="burlywood", weight=9]; 5933 -> 3762[label="",style="solid", color="burlywood", weight=3]; 5934[label="vuz1870/Neg vuz18700",fontsize=10,color="white",style="solid",shape="box"];3738 -> 5934[label="",style="solid", color="burlywood", weight=9]; 5934 -> 3763[label="",style="solid", color="burlywood", weight=3]; 3739[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5935[label="vuz1870/Pos vuz18700",fontsize=10,color="white",style="solid",shape="box"];3739 -> 5935[label="",style="solid", color="burlywood", weight=9]; 5935 -> 3764[label="",style="solid", color="burlywood", weight=3]; 5936[label="vuz1870/Neg vuz18700",fontsize=10,color="white",style="solid",shape="box"];3739 -> 5936[label="",style="solid", color="burlywood", weight=9]; 5936 -> 3765[label="",style="solid", color="burlywood", weight=3]; 3740[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (not (compare (Integer vuz60) (Integer vuz1960) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (not (compare (Integer vuz60) (Integer vuz1960) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3740 -> 3766[label="",style="solid", color="black", weight=3]; 3758[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Pos vuz18700) == LT))",fontsize=16,color="black",shape="box"];3758 -> 3802[label="",style="solid", color="black", weight=3]; 3759[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Neg vuz18700) == LT))",fontsize=16,color="black",shape="box"];3759 -> 3803[label="",style="solid", color="black", weight=3]; 3760[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz18700) == LT))",fontsize=16,color="burlywood",shape="box"];5937[label="vuz18700/Succ vuz187000",fontsize=10,color="white",style="solid",shape="box"];3760 -> 5937[label="",style="solid", color="burlywood", weight=9]; 5937 -> 3804[label="",style="solid", color="burlywood", weight=3]; 5938[label="vuz18700/Zero",fontsize=10,color="white",style="solid",shape="box"];3760 -> 5938[label="",style="solid", color="burlywood", weight=9]; 5938 -> 3805[label="",style="solid", color="burlywood", weight=3]; 3761[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz18700) == LT))",fontsize=16,color="burlywood",shape="box"];5939[label="vuz18700/Succ vuz187000",fontsize=10,color="white",style="solid",shape="box"];3761 -> 5939[label="",style="solid", color="burlywood", weight=9]; 5939 -> 3806[label="",style="solid", color="burlywood", weight=3]; 5940[label="vuz18700/Zero",fontsize=10,color="white",style="solid",shape="box"];3761 -> 5940[label="",style="solid", color="burlywood", weight=9]; 5940 -> 3807[label="",style="solid", color="burlywood", weight=3]; 3762[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Pos vuz18700) == LT))",fontsize=16,color="black",shape="box"];3762 -> 3808[label="",style="solid", color="black", weight=3]; 3763[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Neg vuz18700) == LT))",fontsize=16,color="black",shape="box"];3763 -> 3809[label="",style="solid", color="black", weight=3]; 3764[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz18700) == LT))",fontsize=16,color="burlywood",shape="box"];5941[label="vuz18700/Succ vuz187000",fontsize=10,color="white",style="solid",shape="box"];3764 -> 5941[label="",style="solid", color="burlywood", weight=9]; 5941 -> 3810[label="",style="solid", color="burlywood", weight=3]; 5942[label="vuz18700/Zero",fontsize=10,color="white",style="solid",shape="box"];3764 -> 5942[label="",style="solid", color="burlywood", weight=9]; 5942 -> 3811[label="",style="solid", color="burlywood", weight=3]; 3765[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz18700) == LT))",fontsize=16,color="burlywood",shape="box"];5943[label="vuz18700/Succ vuz187000",fontsize=10,color="white",style="solid",shape="box"];3765 -> 5943[label="",style="solid", color="burlywood", weight=9]; 5943 -> 3812[label="",style="solid", color="burlywood", weight=3]; 5944[label="vuz18700/Zero",fontsize=10,color="white",style="solid",shape="box"];3765 -> 5944[label="",style="solid", color="burlywood", weight=9]; 5944 -> 3813[label="",style="solid", color="burlywood", weight=3]; 3766[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (not (primCmpInt vuz60 vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (not (primCmpInt vuz60 vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5945[label="vuz60/Pos vuz600",fontsize=10,color="white",style="solid",shape="box"];3766 -> 5945[label="",style="solid", color="burlywood", weight=9]; 5945 -> 3814[label="",style="solid", color="burlywood", weight=3]; 5946[label="vuz60/Neg vuz600",fontsize=10,color="white",style="solid",shape="box"];3766 -> 5946[label="",style="solid", color="burlywood", weight=9]; 5946 -> 3815[label="",style="solid", color="burlywood", weight=3]; 3802 -> 4994[label="",style="dashed", color="red", weight=0]; 3802[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpNat (Succ vuz6000) vuz18700 == LT))",fontsize=16,color="magenta"];3802 -> 4995[label="",style="dashed", color="magenta", weight=3]; 3802 -> 4996[label="",style="dashed", color="magenta", weight=3]; 3802 -> 4997[label="",style="dashed", color="magenta", weight=3]; 3802 -> 4998[label="",style="dashed", color="magenta", weight=3]; 3803[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (GT == LT))",fontsize=16,color="black",shape="triangle"];3803 -> 3842[label="",style="solid", color="black", weight=3]; 3804[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz187000)) == LT))",fontsize=16,color="black",shape="box"];3804 -> 3843[label="",style="solid", color="black", weight=3]; 3805[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];3805 -> 3844[label="",style="solid", color="black", weight=3]; 3806[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz187000)) == LT))",fontsize=16,color="black",shape="box"];3806 -> 3845[label="",style="solid", color="black", weight=3]; 3807[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];3807 -> 3846[label="",style="solid", color="black", weight=3]; 3808[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (LT == LT))",fontsize=16,color="black",shape="triangle"];3808 -> 3847[label="",style="solid", color="black", weight=3]; 3809 -> 5039[label="",style="dashed", color="red", weight=0]; 3809[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpNat vuz18700 (Succ vuz6000) == LT))",fontsize=16,color="magenta"];3809 -> 5040[label="",style="dashed", color="magenta", weight=3]; 3809 -> 5041[label="",style="dashed", color="magenta", weight=3]; 3809 -> 5042[label="",style="dashed", color="magenta", weight=3]; 3809 -> 5043[label="",style="dashed", color="magenta", weight=3]; 3810[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz187000)) == LT))",fontsize=16,color="black",shape="box"];3810 -> 3850[label="",style="solid", color="black", weight=3]; 3811[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];3811 -> 3851[label="",style="solid", color="black", weight=3]; 3812[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz187000)) == LT))",fontsize=16,color="black",shape="box"];3812 -> 3852[label="",style="solid", color="black", weight=3]; 3813[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];3813 -> 3853[label="",style="solid", color="black", weight=3]; 3814[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos vuz600)) (not (primCmpInt (Pos vuz600) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos vuz600)) (not (primCmpInt (Pos vuz600) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5947[label="vuz600/Succ vuz6000",fontsize=10,color="white",style="solid",shape="box"];3814 -> 5947[label="",style="solid", color="burlywood", weight=9]; 5947 -> 3854[label="",style="solid", color="burlywood", weight=3]; 5948[label="vuz600/Zero",fontsize=10,color="white",style="solid",shape="box"];3814 -> 5948[label="",style="solid", color="burlywood", weight=9]; 5948 -> 3855[label="",style="solid", color="burlywood", weight=3]; 3815[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg vuz600)) (not (primCmpInt (Neg vuz600) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg vuz600)) (not (primCmpInt (Neg vuz600) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5949[label="vuz600/Succ vuz6000",fontsize=10,color="white",style="solid",shape="box"];3815 -> 5949[label="",style="solid", color="burlywood", weight=9]; 5949 -> 3856[label="",style="solid", color="burlywood", weight=3]; 5950[label="vuz600/Zero",fontsize=10,color="white",style="solid",shape="box"];3815 -> 5950[label="",style="solid", color="burlywood", weight=9]; 5950 -> 3857[label="",style="solid", color="burlywood", weight=3]; 4995[label="vuz18700",fontsize=16,color="green",shape="box"];4996[label="vuz6000",fontsize=16,color="green",shape="box"];4997[label="Succ vuz6000",fontsize=16,color="green",shape="box"];4998[label="vuz59",fontsize=16,color="green",shape="box"];4994[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat vuz238 vuz239 == LT))",fontsize=16,color="burlywood",shape="triangle"];5951[label="vuz238/Succ vuz2380",fontsize=10,color="white",style="solid",shape="box"];4994 -> 5951[label="",style="solid", color="burlywood", weight=9]; 5951 -> 5035[label="",style="solid", color="burlywood", weight=3]; 5952[label="vuz238/Zero",fontsize=10,color="white",style="solid",shape="box"];4994 -> 5952[label="",style="solid", color="burlywood", weight=9]; 5952 -> 5036[label="",style="solid", color="burlywood", weight=3]; 3842[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not False)",fontsize=16,color="black",shape="triangle"];3842 -> 3873[label="",style="solid", color="black", weight=3]; 3843[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz187000) == LT))",fontsize=16,color="black",shape="box"];3843 -> 3874[label="",style="solid", color="black", weight=3]; 3844[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];3844 -> 3875[label="",style="solid", color="black", weight=3]; 3845[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (GT == LT))",fontsize=16,color="black",shape="box"];3845 -> 3876[label="",style="solid", color="black", weight=3]; 3846 -> 3844[label="",style="dashed", color="red", weight=0]; 3846[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="magenta"];3847[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not True)",fontsize=16,color="black",shape="box"];3847 -> 3877[label="",style="solid", color="black", weight=3]; 5040[label="vuz18700",fontsize=16,color="green",shape="box"];5041[label="vuz59",fontsize=16,color="green",shape="box"];5042[label="vuz6000",fontsize=16,color="green",shape="box"];5043[label="Succ vuz6000",fontsize=16,color="green",shape="box"];5039[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat vuz243 vuz244 == LT))",fontsize=16,color="burlywood",shape="triangle"];5953[label="vuz243/Succ vuz2430",fontsize=10,color="white",style="solid",shape="box"];5039 -> 5953[label="",style="solid", color="burlywood", weight=9]; 5953 -> 5080[label="",style="solid", color="burlywood", weight=3]; 5954[label="vuz243/Zero",fontsize=10,color="white",style="solid",shape="box"];5039 -> 5954[label="",style="solid", color="burlywood", weight=9]; 5954 -> 5081[label="",style="solid", color="burlywood", weight=3]; 3850[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (LT == LT))",fontsize=16,color="black",shape="box"];3850 -> 3880[label="",style="solid", color="black", weight=3]; 3851[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];3851 -> 3881[label="",style="solid", color="black", weight=3]; 3852[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz187000) Zero == LT))",fontsize=16,color="black",shape="box"];3852 -> 3882[label="",style="solid", color="black", weight=3]; 3853 -> 3851[label="",style="dashed", color="red", weight=0]; 3853[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="magenta"];3854[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5955[label="vuz1960/Pos vuz19600",fontsize=10,color="white",style="solid",shape="box"];3854 -> 5955[label="",style="solid", color="burlywood", weight=9]; 5955 -> 3883[label="",style="solid", color="burlywood", weight=3]; 5956[label="vuz1960/Neg vuz19600",fontsize=10,color="white",style="solid",shape="box"];3854 -> 5956[label="",style="solid", color="burlywood", weight=9]; 5956 -> 3884[label="",style="solid", color="burlywood", weight=3]; 3855[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5957[label="vuz1960/Pos vuz19600",fontsize=10,color="white",style="solid",shape="box"];3855 -> 5957[label="",style="solid", color="burlywood", weight=9]; 5957 -> 3885[label="",style="solid", color="burlywood", weight=3]; 5958[label="vuz1960/Neg vuz19600",fontsize=10,color="white",style="solid",shape="box"];3855 -> 5958[label="",style="solid", color="burlywood", weight=9]; 5958 -> 3886[label="",style="solid", color="burlywood", weight=3]; 3856[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5959[label="vuz1960/Pos vuz19600",fontsize=10,color="white",style="solid",shape="box"];3856 -> 5959[label="",style="solid", color="burlywood", weight=9]; 5959 -> 3887[label="",style="solid", color="burlywood", weight=3]; 5960[label="vuz1960/Neg vuz19600",fontsize=10,color="white",style="solid",shape="box"];3856 -> 5960[label="",style="solid", color="burlywood", weight=9]; 5960 -> 3888[label="",style="solid", color="burlywood", weight=3]; 3857[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5961[label="vuz1960/Pos vuz19600",fontsize=10,color="white",style="solid",shape="box"];3857 -> 5961[label="",style="solid", color="burlywood", weight=9]; 5961 -> 3889[label="",style="solid", color="burlywood", weight=3]; 5962[label="vuz1960/Neg vuz19600",fontsize=10,color="white",style="solid",shape="box"];3857 -> 5962[label="",style="solid", color="burlywood", weight=9]; 5962 -> 3890[label="",style="solid", color="burlywood", weight=3]; 5035[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat (Succ vuz2380) vuz239 == LT))",fontsize=16,color="burlywood",shape="box"];5963[label="vuz239/Succ vuz2390",fontsize=10,color="white",style="solid",shape="box"];5035 -> 5963[label="",style="solid", color="burlywood", weight=9]; 5963 -> 5082[label="",style="solid", color="burlywood", weight=3]; 5964[label="vuz239/Zero",fontsize=10,color="white",style="solid",shape="box"];5035 -> 5964[label="",style="solid", color="burlywood", weight=9]; 5964 -> 5083[label="",style="solid", color="burlywood", weight=3]; 5036[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat Zero vuz239 == LT))",fontsize=16,color="burlywood",shape="box"];5965[label="vuz239/Succ vuz2390",fontsize=10,color="white",style="solid",shape="box"];5036 -> 5965[label="",style="solid", color="burlywood", weight=9]; 5965 -> 5084[label="",style="solid", color="burlywood", weight=3]; 5966[label="vuz239/Zero",fontsize=10,color="white",style="solid",shape="box"];5036 -> 5966[label="",style="solid", color="burlywood", weight=9]; 5966 -> 5085[label="",style="solid", color="burlywood", weight=3]; 3873[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) True",fontsize=16,color="black",shape="box"];3873 -> 3930[label="",style="solid", color="black", weight=3]; 3874[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (LT == LT))",fontsize=16,color="black",shape="box"];3874 -> 3931[label="",style="solid", color="black", weight=3]; 3875[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="black",shape="triangle"];3875 -> 3932[label="",style="solid", color="black", weight=3]; 3876 -> 3875[label="",style="dashed", color="red", weight=0]; 3876[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="magenta"];3877[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) False",fontsize=16,color="black",shape="box"];3877 -> 3933[label="",style="solid", color="black", weight=3]; 5080[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat (Succ vuz2430) vuz244 == LT))",fontsize=16,color="burlywood",shape="box"];5967[label="vuz244/Succ vuz2440",fontsize=10,color="white",style="solid",shape="box"];5080 -> 5967[label="",style="solid", color="burlywood", weight=9]; 5967 -> 5101[label="",style="solid", color="burlywood", weight=3]; 5968[label="vuz244/Zero",fontsize=10,color="white",style="solid",shape="box"];5080 -> 5968[label="",style="solid", color="burlywood", weight=9]; 5968 -> 5102[label="",style="solid", color="burlywood", weight=3]; 5081[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat Zero vuz244 == LT))",fontsize=16,color="burlywood",shape="box"];5969[label="vuz244/Succ vuz2440",fontsize=10,color="white",style="solid",shape="box"];5081 -> 5969[label="",style="solid", color="burlywood", weight=9]; 5969 -> 5103[label="",style="solid", color="burlywood", weight=3]; 5970[label="vuz244/Zero",fontsize=10,color="white",style="solid",shape="box"];5081 -> 5970[label="",style="solid", color="burlywood", weight=9]; 5970 -> 5104[label="",style="solid", color="burlywood", weight=3]; 3880[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not True)",fontsize=16,color="black",shape="box"];3880 -> 3936[label="",style="solid", color="black", weight=3]; 3881[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="black",shape="triangle"];3881 -> 3937[label="",style="solid", color="black", weight=3]; 3882[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (GT == LT))",fontsize=16,color="black",shape="box"];3882 -> 3938[label="",style="solid", color="black", weight=3]; 3883[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Pos vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Pos vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3883 -> 3939[label="",style="solid", color="black", weight=3]; 3884[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Neg vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Neg vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3884 -> 3940[label="",style="solid", color="black", weight=3]; 3885[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5971[label="vuz19600/Succ vuz196000",fontsize=10,color="white",style="solid",shape="box"];3885 -> 5971[label="",style="solid", color="burlywood", weight=9]; 5971 -> 3941[label="",style="solid", color="burlywood", weight=3]; 5972[label="vuz19600/Zero",fontsize=10,color="white",style="solid",shape="box"];3885 -> 5972[label="",style="solid", color="burlywood", weight=9]; 5972 -> 3942[label="",style="solid", color="burlywood", weight=3]; 3886[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5973[label="vuz19600/Succ vuz196000",fontsize=10,color="white",style="solid",shape="box"];3886 -> 5973[label="",style="solid", color="burlywood", weight=9]; 5973 -> 3943[label="",style="solid", color="burlywood", weight=3]; 5974[label="vuz19600/Zero",fontsize=10,color="white",style="solid",shape="box"];3886 -> 5974[label="",style="solid", color="burlywood", weight=9]; 5974 -> 3944[label="",style="solid", color="burlywood", weight=3]; 3887[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Pos vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Pos vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3887 -> 3945[label="",style="solid", color="black", weight=3]; 3888[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Neg vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Neg vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3888 -> 3946[label="",style="solid", color="black", weight=3]; 3889[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5975[label="vuz19600/Succ vuz196000",fontsize=10,color="white",style="solid",shape="box"];3889 -> 5975[label="",style="solid", color="burlywood", weight=9]; 5975 -> 3947[label="",style="solid", color="burlywood", weight=3]; 5976[label="vuz19600/Zero",fontsize=10,color="white",style="solid",shape="box"];3889 -> 5976[label="",style="solid", color="burlywood", weight=9]; 5976 -> 3948[label="",style="solid", color="burlywood", weight=3]; 3890[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5977[label="vuz19600/Succ vuz196000",fontsize=10,color="white",style="solid",shape="box"];3890 -> 5977[label="",style="solid", color="burlywood", weight=9]; 5977 -> 3949[label="",style="solid", color="burlywood", weight=3]; 5978[label="vuz19600/Zero",fontsize=10,color="white",style="solid",shape="box"];3890 -> 5978[label="",style="solid", color="burlywood", weight=9]; 5978 -> 3950[label="",style="solid", color="burlywood", weight=3]; 5082[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat (Succ vuz2380) (Succ vuz2390) == LT))",fontsize=16,color="black",shape="box"];5082 -> 5105[label="",style="solid", color="black", weight=3]; 5083[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat (Succ vuz2380) Zero == LT))",fontsize=16,color="black",shape="box"];5083 -> 5106[label="",style="solid", color="black", weight=3]; 5084[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat Zero (Succ vuz2390) == LT))",fontsize=16,color="black",shape="box"];5084 -> 5107[label="",style="solid", color="black", weight=3]; 5085[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];5085 -> 5108[label="",style="solid", color="black", weight=3]; 3930 -> 4130[label="",style="dashed", color="red", weight=0]; 3930[label="Integer vuz59 `quot` Integer (Pos (Succ vuz6000))",fontsize=16,color="magenta"];3930 -> 4131[label="",style="dashed", color="magenta", weight=3]; 3931[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not True)",fontsize=16,color="black",shape="box"];3931 -> 3976[label="",style="solid", color="black", weight=3]; 3932[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];3932 -> 3977[label="",style="solid", color="black", weight=3]; 3933[label="Integer vuz59 `quot` absReal0 (Integer (Neg (Succ vuz6000))) otherwise",fontsize=16,color="black",shape="box"];3933 -> 3978[label="",style="solid", color="black", weight=3]; 5101[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat (Succ vuz2430) (Succ vuz2440) == LT))",fontsize=16,color="black",shape="box"];5101 -> 5123[label="",style="solid", color="black", weight=3]; 5102[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat (Succ vuz2430) Zero == LT))",fontsize=16,color="black",shape="box"];5102 -> 5124[label="",style="solid", color="black", weight=3]; 5103[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat Zero (Succ vuz2440) == LT))",fontsize=16,color="black",shape="box"];5103 -> 5125[label="",style="solid", color="black", weight=3]; 5104[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];5104 -> 5126[label="",style="solid", color="black", weight=3]; 3936[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) False",fontsize=16,color="black",shape="box"];3936 -> 3983[label="",style="solid", color="black", weight=3]; 3937[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];3937 -> 3984[label="",style="solid", color="black", weight=3]; 3938 -> 3881[label="",style="dashed", color="red", weight=0]; 3938[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="magenta"];3939 -> 5153[label="",style="dashed", color="red", weight=0]; 3939[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpNat (Succ vuz6000) vuz19600 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpNat (Succ vuz6000) vuz19600 == LT)) `rem` Integer vuz158)",fontsize=16,color="magenta"];3939 -> 5154[label="",style="dashed", color="magenta", weight=3]; 3939 -> 5155[label="",style="dashed", color="magenta", weight=3]; 3939 -> 5156[label="",style="dashed", color="magenta", weight=3]; 3939 -> 5157[label="",style="dashed", color="magenta", weight=3]; 3939 -> 5158[label="",style="dashed", color="magenta", weight=3]; 3939 -> 5159[label="",style="dashed", color="magenta", weight=3]; 3940[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (GT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (GT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3940 -> 3987[label="",style="solid", color="black", weight=3]; 3941[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz196000)) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz196000)) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3941 -> 3988[label="",style="solid", color="black", weight=3]; 3942[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3942 -> 3989[label="",style="solid", color="black", weight=3]; 3943[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz196000)) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz196000)) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3943 -> 3990[label="",style="solid", color="black", weight=3]; 3944[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3944 -> 3991[label="",style="solid", color="black", weight=3]; 3945[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (LT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (LT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3945 -> 3992[label="",style="solid", color="black", weight=3]; 3946 -> 5218[label="",style="dashed", color="red", weight=0]; 3946[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpNat vuz19600 (Succ vuz6000) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpNat vuz19600 (Succ vuz6000) == LT)) `rem` Integer vuz158)",fontsize=16,color="magenta"];3946 -> 5219[label="",style="dashed", color="magenta", weight=3]; 3946 -> 5220[label="",style="dashed", color="magenta", weight=3]; 3946 -> 5221[label="",style="dashed", color="magenta", weight=3]; 3946 -> 5222[label="",style="dashed", color="magenta", weight=3]; 3946 -> 5223[label="",style="dashed", color="magenta", weight=3]; 3946 -> 5224[label="",style="dashed", color="magenta", weight=3]; 3947[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz196000)) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz196000)) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3947 -> 3995[label="",style="solid", color="black", weight=3]; 3948[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3948 -> 3996[label="",style="solid", color="black", weight=3]; 3949[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz196000)) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz196000)) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3949 -> 3997[label="",style="solid", color="black", weight=3]; 3950[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3950 -> 3998[label="",style="solid", color="black", weight=3]; 5105 -> 4994[label="",style="dashed", color="red", weight=0]; 5105[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat vuz2380 vuz2390 == LT))",fontsize=16,color="magenta"];5105 -> 5127[label="",style="dashed", color="magenta", weight=3]; 5105 -> 5128[label="",style="dashed", color="magenta", weight=3]; 5106 -> 3803[label="",style="dashed", color="red", weight=0]; 5106[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (GT == LT))",fontsize=16,color="magenta"];5106 -> 5129[label="",style="dashed", color="magenta", weight=3]; 5106 -> 5130[label="",style="dashed", color="magenta", weight=3]; 5107[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (LT == LT))",fontsize=16,color="black",shape="box"];5107 -> 5131[label="",style="solid", color="black", weight=3]; 5108[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (EQ == LT))",fontsize=16,color="black",shape="box"];5108 -> 5132[label="",style="solid", color="black", weight=3]; 4131[label="Pos (Succ vuz6000)",fontsize=16,color="green",shape="box"];4130[label="Integer vuz59 `quot` Integer vuz201",fontsize=16,color="black",shape="triangle"];4130 -> 4135[label="",style="solid", color="black", weight=3]; 3976[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) False",fontsize=16,color="black",shape="box"];3976 -> 4020[label="",style="solid", color="black", weight=3]; 3977 -> 4130[label="",style="dashed", color="red", weight=0]; 3977[label="Integer vuz59 `quot` Integer (Pos Zero)",fontsize=16,color="magenta"];3977 -> 4132[label="",style="dashed", color="magenta", weight=3]; 3978[label="Integer vuz59 `quot` absReal0 (Integer (Neg (Succ vuz6000))) True",fontsize=16,color="black",shape="box"];3978 -> 4022[label="",style="solid", color="black", weight=3]; 5123 -> 5039[label="",style="dashed", color="red", weight=0]; 5123[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat vuz2430 vuz2440 == LT))",fontsize=16,color="magenta"];5123 -> 5144[label="",style="dashed", color="magenta", weight=3]; 5123 -> 5145[label="",style="dashed", color="magenta", weight=3]; 5124[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (GT == LT))",fontsize=16,color="black",shape="box"];5124 -> 5146[label="",style="solid", color="black", weight=3]; 5125 -> 3808[label="",style="dashed", color="red", weight=0]; 5125[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (LT == LT))",fontsize=16,color="magenta"];5125 -> 5147[label="",style="dashed", color="magenta", weight=3]; 5125 -> 5148[label="",style="dashed", color="magenta", weight=3]; 5126[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (EQ == LT))",fontsize=16,color="black",shape="box"];5126 -> 5149[label="",style="solid", color="black", weight=3]; 3983[label="Integer vuz59 `quot` absReal0 (Integer (Neg Zero)) otherwise",fontsize=16,color="black",shape="box"];3983 -> 4027[label="",style="solid", color="black", weight=3]; 3984 -> 4130[label="",style="dashed", color="red", weight=0]; 3984[label="Integer vuz59 `quot` Integer (Neg Zero)",fontsize=16,color="magenta"];3984 -> 4133[label="",style="dashed", color="magenta", weight=3]; 5154[label="vuz59",fontsize=16,color="green",shape="box"];5155[label="vuz6000",fontsize=16,color="green",shape="box"];5156[label="vuz158",fontsize=16,color="green",shape="box"];5157[label="vuz186",fontsize=16,color="green",shape="box"];5158[label="Succ vuz6000",fontsize=16,color="green",shape="box"];5159[label="vuz19600",fontsize=16,color="green",shape="box"];5153[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat vuz248 vuz249 == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat vuz248 vuz249 == LT)) `rem` Integer vuz250)",fontsize=16,color="burlywood",shape="triangle"];5979[label="vuz248/Succ vuz2480",fontsize=10,color="white",style="solid",shape="box"];5153 -> 5979[label="",style="solid", color="burlywood", weight=9]; 5979 -> 5214[label="",style="solid", color="burlywood", weight=3]; 5980[label="vuz248/Zero",fontsize=10,color="white",style="solid",shape="box"];5153 -> 5980[label="",style="solid", color="burlywood", weight=9]; 5980 -> 5215[label="",style="solid", color="burlywood", weight=3]; 3987[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not False) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3987 -> 4031[label="",style="solid", color="black", weight=3]; 3988[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz196000) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz196000) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3988 -> 4032[label="",style="solid", color="black", weight=3]; 3989[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3989 -> 4033[label="",style="solid", color="black", weight=3]; 3990[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (GT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (GT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3990 -> 4034[label="",style="solid", color="black", weight=3]; 3991 -> 3989[label="",style="dashed", color="red", weight=0]; 3991[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz158)",fontsize=16,color="magenta"];3992[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not True) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not True) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3992 -> 4035[label="",style="solid", color="black", weight=3]; 5219[label="vuz6000",fontsize=16,color="green",shape="box"];5220[label="vuz186",fontsize=16,color="green",shape="box"];5221[label="vuz158",fontsize=16,color="green",shape="box"];5222[label="Succ vuz6000",fontsize=16,color="green",shape="box"];5223[label="vuz59",fontsize=16,color="green",shape="box"];5224[label="vuz19600",fontsize=16,color="green",shape="box"];5218[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat vuz255 vuz256 == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat vuz255 vuz256 == LT)) `rem` Integer vuz257)",fontsize=16,color="burlywood",shape="triangle"];5981[label="vuz255/Succ vuz2550",fontsize=10,color="white",style="solid",shape="box"];5218 -> 5981[label="",style="solid", color="burlywood", weight=9]; 5981 -> 5279[label="",style="solid", color="burlywood", weight=3]; 5982[label="vuz255/Zero",fontsize=10,color="white",style="solid",shape="box"];5218 -> 5982[label="",style="solid", color="burlywood", weight=9]; 5982 -> 5280[label="",style="solid", color="burlywood", weight=3]; 3995[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (LT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (LT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3995 -> 4038[label="",style="solid", color="black", weight=3]; 3996[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3996 -> 4039[label="",style="solid", color="black", weight=3]; 3997[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz196000) Zero == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz196000) Zero == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3997 -> 4040[label="",style="solid", color="black", weight=3]; 3998 -> 3996[label="",style="dashed", color="red", weight=0]; 3998[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz158)",fontsize=16,color="magenta"];5127[label="vuz2390",fontsize=16,color="green",shape="box"];5128[label="vuz2380",fontsize=16,color="green",shape="box"];5129[label="vuz236",fontsize=16,color="green",shape="box"];5130[label="vuz237",fontsize=16,color="green",shape="box"];5131[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not True)",fontsize=16,color="black",shape="box"];5131 -> 5150[label="",style="solid", color="black", weight=3]; 5132 -> 3842[label="",style="dashed", color="red", weight=0]; 5132[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not False)",fontsize=16,color="magenta"];5132 -> 5151[label="",style="dashed", color="magenta", weight=3]; 5132 -> 5152[label="",style="dashed", color="magenta", weight=3]; 4135[label="Integer (primQuotInt vuz59 vuz201)",fontsize=16,color="green",shape="box"];4135 -> 4174[label="",style="dashed", color="green", weight=3]; 4020[label="Integer vuz59 `quot` absReal0 (Integer (Pos Zero)) otherwise",fontsize=16,color="black",shape="box"];4020 -> 4079[label="",style="solid", color="black", weight=3]; 4132[label="Pos Zero",fontsize=16,color="green",shape="box"];4022[label="Integer vuz59 `quot` (`negate` Integer (Neg (Succ vuz6000)))",fontsize=16,color="black",shape="box"];4022 -> 4081[label="",style="solid", color="black", weight=3]; 5144[label="vuz2430",fontsize=16,color="green",shape="box"];5145[label="vuz2440",fontsize=16,color="green",shape="box"];5146[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not False)",fontsize=16,color="black",shape="triangle"];5146 -> 5216[label="",style="solid", color="black", weight=3]; 5147[label="vuz242",fontsize=16,color="green",shape="box"];5148[label="vuz241",fontsize=16,color="green",shape="box"];5149 -> 5146[label="",style="dashed", color="red", weight=0]; 5149[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not False)",fontsize=16,color="magenta"];4027[label="Integer vuz59 `quot` absReal0 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];4027 -> 4087[label="",style="solid", color="black", weight=3]; 4133[label="Neg Zero",fontsize=16,color="green",shape="box"];5214[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) vuz249 == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) vuz249 == LT)) `rem` Integer vuz250)",fontsize=16,color="burlywood",shape="box"];5983[label="vuz249/Succ vuz2490",fontsize=10,color="white",style="solid",shape="box"];5214 -> 5983[label="",style="solid", color="burlywood", weight=9]; 5983 -> 5281[label="",style="solid", color="burlywood", weight=3]; 5984[label="vuz249/Zero",fontsize=10,color="white",style="solid",shape="box"];5214 -> 5984[label="",style="solid", color="burlywood", weight=9]; 5984 -> 5282[label="",style="solid", color="burlywood", weight=3]; 5215[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero vuz249 == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero vuz249 == LT)) `rem` Integer vuz250)",fontsize=16,color="burlywood",shape="box"];5985[label="vuz249/Succ vuz2490",fontsize=10,color="white",style="solid",shape="box"];5215 -> 5985[label="",style="solid", color="burlywood", weight=9]; 5985 -> 5283[label="",style="solid", color="burlywood", weight=3]; 5986[label="vuz249/Zero",fontsize=10,color="white",style="solid",shape="box"];5215 -> 5986[label="",style="solid", color="burlywood", weight=9]; 5986 -> 5284[label="",style="solid", color="burlywood", weight=3]; 4031[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4031 -> 4091[label="",style="solid", color="black", weight=3]; 4032[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (LT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (LT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4032 -> 4092[label="",style="solid", color="black", weight=3]; 4033[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];4033 -> 4093[label="",style="solid", color="black", weight=3]; 4034 -> 4033[label="",style="dashed", color="red", weight=0]; 4034[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz158)",fontsize=16,color="magenta"];4035[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) False `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) False `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4035 -> 4094[label="",style="solid", color="black", weight=3]; 5279[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) vuz256 == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) vuz256 == LT)) `rem` Integer vuz257)",fontsize=16,color="burlywood",shape="box"];5987[label="vuz256/Succ vuz2560",fontsize=10,color="white",style="solid",shape="box"];5279 -> 5987[label="",style="solid", color="burlywood", weight=9]; 5987 -> 5287[label="",style="solid", color="burlywood", weight=3]; 5988[label="vuz256/Zero",fontsize=10,color="white",style="solid",shape="box"];5279 -> 5988[label="",style="solid", color="burlywood", weight=9]; 5988 -> 5288[label="",style="solid", color="burlywood", weight=3]; 5280[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero vuz256 == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero vuz256 == LT)) `rem` Integer vuz257)",fontsize=16,color="burlywood",shape="box"];5989[label="vuz256/Succ vuz2560",fontsize=10,color="white",style="solid",shape="box"];5280 -> 5989[label="",style="solid", color="burlywood", weight=9]; 5989 -> 5289[label="",style="solid", color="burlywood", weight=3]; 5990[label="vuz256/Zero",fontsize=10,color="white",style="solid",shape="box"];5280 -> 5990[label="",style="solid", color="burlywood", weight=9]; 5990 -> 5290[label="",style="solid", color="burlywood", weight=3]; 4038[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not True) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not True) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4038 -> 4097[label="",style="solid", color="black", weight=3]; 4039[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];4039 -> 4098[label="",style="solid", color="black", weight=3]; 4040[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (GT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (GT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4040 -> 4099[label="",style="solid", color="black", weight=3]; 5150[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) False",fontsize=16,color="black",shape="box"];5150 -> 5217[label="",style="solid", color="black", weight=3]; 5151[label="vuz236",fontsize=16,color="green",shape="box"];5152[label="vuz237",fontsize=16,color="green",shape="box"];4174[label="primQuotInt vuz59 vuz201",fontsize=16,color="burlywood",shape="box"];5991[label="vuz59/Pos vuz590",fontsize=10,color="white",style="solid",shape="box"];4174 -> 5991[label="",style="solid", color="burlywood", weight=9]; 5991 -> 4188[label="",style="solid", color="burlywood", weight=3]; 5992[label="vuz59/Neg vuz590",fontsize=10,color="white",style="solid",shape="box"];4174 -> 5992[label="",style="solid", color="burlywood", weight=9]; 5992 -> 4189[label="",style="solid", color="burlywood", weight=3]; 4079[label="Integer vuz59 `quot` absReal0 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];4079 -> 4127[label="",style="solid", color="black", weight=3]; 4081 -> 4130[label="",style="dashed", color="red", weight=0]; 4081[label="Integer vuz59 `quot` Integer (primNegInt (Neg (Succ vuz6000)))",fontsize=16,color="magenta"];4081 -> 4134[label="",style="dashed", color="magenta", weight=3]; 5216[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) True",fontsize=16,color="black",shape="box"];5216 -> 5285[label="",style="solid", color="black", weight=3]; 4087[label="Integer vuz59 `quot` (`negate` Integer (Neg Zero))",fontsize=16,color="black",shape="box"];4087 -> 4141[label="",style="solid", color="black", weight=3]; 5281[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) (Succ vuz2490) == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) (Succ vuz2490) == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5281 -> 5291[label="",style="solid", color="black", weight=3]; 5282[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) Zero == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) Zero == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5282 -> 5292[label="",style="solid", color="black", weight=3]; 5283[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero (Succ vuz2490) == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero (Succ vuz2490) == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5283 -> 5293[label="",style="solid", color="black", weight=3]; 5284[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5284 -> 5294[label="",style="solid", color="black", weight=3]; 4091 -> 4426[label="",style="dashed", color="red", weight=0]; 4091[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (Pos (Succ vuz6000)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (Pos (Succ vuz6000)) `rem` Integer vuz158)",fontsize=16,color="magenta"];4091 -> 4427[label="",style="dashed", color="magenta", weight=3]; 4091 -> 4428[label="",style="dashed", color="magenta", weight=3]; 4092[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not True) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not True) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4092 -> 4147[label="",style="solid", color="black", weight=3]; 4093[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4093 -> 4148[label="",style="solid", color="black", weight=3]; 4094[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz6000))) otherwise `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Neg (Succ vuz6000))) otherwise `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4094 -> 4149[label="",style="solid", color="black", weight=3]; 5287[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) (Succ vuz2560) == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) (Succ vuz2560) == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5287 -> 5298[label="",style="solid", color="black", weight=3]; 5288[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) Zero == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) Zero == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5288 -> 5299[label="",style="solid", color="black", weight=3]; 5289[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero (Succ vuz2560) == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero (Succ vuz2560) == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5289 -> 5300[label="",style="solid", color="black", weight=3]; 5290[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5290 -> 5301[label="",style="solid", color="black", weight=3]; 4097[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) False `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) False `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4097 -> 4154[label="",style="solid", color="black", weight=3]; 4098[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4098 -> 4155[label="",style="solid", color="black", weight=3]; 4099 -> 4039[label="",style="dashed", color="red", weight=0]; 4099[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz158)",fontsize=16,color="magenta"];5217[label="Integer vuz236 `quot` absReal0 (Integer (Pos (Succ vuz237))) otherwise",fontsize=16,color="black",shape="box"];5217 -> 5286[label="",style="solid", color="black", weight=3]; 4188[label="primQuotInt (Pos vuz590) vuz201",fontsize=16,color="burlywood",shape="box"];5993[label="vuz201/Pos vuz2010",fontsize=10,color="white",style="solid",shape="box"];4188 -> 5993[label="",style="solid", color="burlywood", weight=9]; 5993 -> 4297[label="",style="solid", color="burlywood", weight=3]; 5994[label="vuz201/Neg vuz2010",fontsize=10,color="white",style="solid",shape="box"];4188 -> 5994[label="",style="solid", color="burlywood", weight=9]; 5994 -> 4298[label="",style="solid", color="burlywood", weight=3]; 4189[label="primQuotInt (Neg vuz590) vuz201",fontsize=16,color="burlywood",shape="box"];5995[label="vuz201/Pos vuz2010",fontsize=10,color="white",style="solid",shape="box"];4189 -> 5995[label="",style="solid", color="burlywood", weight=9]; 5995 -> 4299[label="",style="solid", color="burlywood", weight=3]; 5996[label="vuz201/Neg vuz2010",fontsize=10,color="white",style="solid",shape="box"];4189 -> 5996[label="",style="solid", color="burlywood", weight=9]; 5996 -> 4300[label="",style="solid", color="burlywood", weight=3]; 4127[label="Integer vuz59 `quot` (`negate` Integer (Pos Zero))",fontsize=16,color="black",shape="box"];4127 -> 4161[label="",style="solid", color="black", weight=3]; 4134 -> 471[label="",style="dashed", color="red", weight=0]; 4134[label="primNegInt (Neg (Succ vuz6000))",fontsize=16,color="magenta"];4134 -> 4162[label="",style="dashed", color="magenta", weight=3]; 5285 -> 4130[label="",style="dashed", color="red", weight=0]; 5285[label="Integer vuz241 `quot` Integer (Neg (Succ vuz242))",fontsize=16,color="magenta"];5285 -> 5295[label="",style="dashed", color="magenta", weight=3]; 5285 -> 5296[label="",style="dashed", color="magenta", weight=3]; 4141 -> 4130[label="",style="dashed", color="red", weight=0]; 4141[label="Integer vuz59 `quot` Integer (primNegInt (Neg Zero))",fontsize=16,color="magenta"];4141 -> 4180[label="",style="dashed", color="magenta", weight=3]; 5291 -> 5153[label="",style="dashed", color="red", weight=0]; 5291[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat vuz2480 vuz2490 == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat vuz2480 vuz2490 == LT)) `rem` Integer vuz250)",fontsize=16,color="magenta"];5291 -> 5302[label="",style="dashed", color="magenta", weight=3]; 5291 -> 5303[label="",style="dashed", color="magenta", weight=3]; 5292 -> 3940[label="",style="dashed", color="red", weight=0]; 5292[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (GT == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (GT == LT)) `rem` Integer vuz250)",fontsize=16,color="magenta"];5292 -> 5304[label="",style="dashed", color="magenta", weight=3]; 5292 -> 5305[label="",style="dashed", color="magenta", weight=3]; 5292 -> 5306[label="",style="dashed", color="magenta", weight=3]; 5292 -> 5307[label="",style="dashed", color="magenta", weight=3]; 5293[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (LT == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (LT == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5293 -> 5308[label="",style="solid", color="black", weight=3]; 5294[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (EQ == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (EQ == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5294 -> 5309[label="",style="solid", color="black", weight=3]; 4427[label="Pos (Succ vuz6000)",fontsize=16,color="green",shape="box"];4428[label="Pos (Succ vuz6000)",fontsize=16,color="green",shape="box"];4426[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer vuz222 `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer vuz221 `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];4426 -> 4443[label="",style="solid", color="black", weight=3]; 4147[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) False `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) False `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4147 -> 4190[label="",style="solid", color="black", weight=3]; 4148 -> 4426[label="",style="dashed", color="red", weight=0]; 4148[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (Pos Zero) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (Pos Zero) `rem` Integer vuz158)",fontsize=16,color="magenta"];4148 -> 4429[label="",style="dashed", color="magenta", weight=3]; 4148 -> 4430[label="",style="dashed", color="magenta", weight=3]; 4149[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz6000))) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Neg (Succ vuz6000))) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4149 -> 4192[label="",style="solid", color="black", weight=3]; 5298 -> 5218[label="",style="dashed", color="red", weight=0]; 5298[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat vuz2550 vuz2560 == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat vuz2550 vuz2560 == LT)) `rem` Integer vuz257)",fontsize=16,color="magenta"];5298 -> 5311[label="",style="dashed", color="magenta", weight=3]; 5298 -> 5312[label="",style="dashed", color="magenta", weight=3]; 5299[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (GT == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (GT == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5299 -> 5313[label="",style="solid", color="black", weight=3]; 5300 -> 3945[label="",style="dashed", color="red", weight=0]; 5300[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (LT == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (LT == LT)) `rem` Integer vuz257)",fontsize=16,color="magenta"];5300 -> 5314[label="",style="dashed", color="magenta", weight=3]; 5300 -> 5315[label="",style="dashed", color="magenta", weight=3]; 5300 -> 5316[label="",style="dashed", color="magenta", weight=3]; 5300 -> 5317[label="",style="dashed", color="magenta", weight=3]; 5301[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (EQ == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (EQ == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5301 -> 5318[label="",style="solid", color="black", weight=3]; 4154[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) otherwise `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Neg Zero)) otherwise `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4154 -> 4197[label="",style="solid", color="black", weight=3]; 4155 -> 4426[label="",style="dashed", color="red", weight=0]; 4155[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (Neg Zero) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (Neg Zero) `rem` Integer vuz158)",fontsize=16,color="magenta"];4155 -> 4431[label="",style="dashed", color="magenta", weight=3]; 4155 -> 4432[label="",style="dashed", color="magenta", weight=3]; 5286[label="Integer vuz236 `quot` absReal0 (Integer (Pos (Succ vuz237))) True",fontsize=16,color="black",shape="box"];5286 -> 5297[label="",style="solid", color="black", weight=3]; 4297[label="primQuotInt (Pos vuz590) (Pos vuz2010)",fontsize=16,color="burlywood",shape="box"];5997[label="vuz2010/Succ vuz20100",fontsize=10,color="white",style="solid",shape="box"];4297 -> 5997[label="",style="solid", color="burlywood", weight=9]; 5997 -> 4413[label="",style="solid", color="burlywood", weight=3]; 5998[label="vuz2010/Zero",fontsize=10,color="white",style="solid",shape="box"];4297 -> 5998[label="",style="solid", color="burlywood", weight=9]; 5998 -> 4414[label="",style="solid", color="burlywood", weight=3]; 4298[label="primQuotInt (Pos vuz590) (Neg vuz2010)",fontsize=16,color="burlywood",shape="box"];5999[label="vuz2010/Succ vuz20100",fontsize=10,color="white",style="solid",shape="box"];4298 -> 5999[label="",style="solid", color="burlywood", weight=9]; 5999 -> 4415[label="",style="solid", color="burlywood", weight=3]; 6000[label="vuz2010/Zero",fontsize=10,color="white",style="solid",shape="box"];4298 -> 6000[label="",style="solid", color="burlywood", weight=9]; 6000 -> 4416[label="",style="solid", color="burlywood", weight=3]; 4299[label="primQuotInt (Neg vuz590) (Pos vuz2010)",fontsize=16,color="burlywood",shape="box"];6001[label="vuz2010/Succ vuz20100",fontsize=10,color="white",style="solid",shape="box"];4299 -> 6001[label="",style="solid", color="burlywood", weight=9]; 6001 -> 4417[label="",style="solid", color="burlywood", weight=3]; 6002[label="vuz2010/Zero",fontsize=10,color="white",style="solid",shape="box"];4299 -> 6002[label="",style="solid", color="burlywood", weight=9]; 6002 -> 4418[label="",style="solid", color="burlywood", weight=3]; 4300[label="primQuotInt (Neg vuz590) (Neg vuz2010)",fontsize=16,color="burlywood",shape="box"];6003[label="vuz2010/Succ vuz20100",fontsize=10,color="white",style="solid",shape="box"];4300 -> 6003[label="",style="solid", color="burlywood", weight=9]; 6003 -> 4419[label="",style="solid", color="burlywood", weight=3]; 6004[label="vuz2010/Zero",fontsize=10,color="white",style="solid",shape="box"];4300 -> 6004[label="",style="solid", color="burlywood", weight=9]; 6004 -> 4420[label="",style="solid", color="burlywood", weight=3]; 4161 -> 4130[label="",style="dashed", color="red", weight=0]; 4161[label="Integer vuz59 `quot` Integer (primNegInt (Pos Zero))",fontsize=16,color="magenta"];4161 -> 4205[label="",style="dashed", color="magenta", weight=3]; 4162[label="Neg (Succ vuz6000)",fontsize=16,color="green",shape="box"];5295[label="vuz241",fontsize=16,color="green",shape="box"];5296[label="Neg (Succ vuz242)",fontsize=16,color="green",shape="box"];4180 -> 471[label="",style="dashed", color="red", weight=0]; 4180[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];4180 -> 4212[label="",style="dashed", color="magenta", weight=3]; 5302[label="vuz2480",fontsize=16,color="green",shape="box"];5303[label="vuz2490",fontsize=16,color="green",shape="box"];5304[label="vuz250",fontsize=16,color="green",shape="box"];5305[label="vuz246",fontsize=16,color="green",shape="box"];5306[label="vuz247",fontsize=16,color="green",shape="box"];5307[label="vuz251",fontsize=16,color="green",shape="box"];5308[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not True) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not True) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5308 -> 5319[label="",style="solid", color="black", weight=3]; 5309 -> 3987[label="",style="dashed", color="red", weight=0]; 5309[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not False) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not False) `rem` Integer vuz250)",fontsize=16,color="magenta"];5309 -> 5320[label="",style="dashed", color="magenta", weight=3]; 5309 -> 5321[label="",style="dashed", color="magenta", weight=3]; 5309 -> 5322[label="",style="dashed", color="magenta", weight=3]; 5309 -> 5323[label="",style="dashed", color="magenta", weight=3]; 4443 -> 4491[label="",style="dashed", color="red", weight=0]; 4443[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primRemInt vuz222 vuz158) == vuz186) (Integer vuz158) (Integer (primRemInt vuz222 vuz158))",fontsize=16,color="magenta"];4443 -> 4492[label="",style="dashed", color="magenta", weight=3]; 4443 -> 4493[label="",style="dashed", color="magenta", weight=3]; 4190[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) otherwise `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Pos Zero)) otherwise `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4190 -> 4301[label="",style="solid", color="black", weight=3]; 4429[label="Pos Zero",fontsize=16,color="green",shape="box"];4430[label="Pos Zero",fontsize=16,color="green",shape="box"];4192[label="Integer vuz59 `quot` gcd0Gcd'1 ((`negate` Integer (Neg (Succ vuz6000))) `rem` Integer vuz158 == vuz186) (Integer vuz158) ((`negate` Integer (Neg (Succ vuz6000))) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4192 -> 4304[label="",style="solid", color="black", weight=3]; 5311[label="vuz2560",fontsize=16,color="green",shape="box"];5312[label="vuz2550",fontsize=16,color="green",shape="box"];5313[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not False) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not False) `rem` Integer vuz257)",fontsize=16,color="black",shape="triangle"];5313 -> 5326[label="",style="solid", color="black", weight=3]; 5314[label="vuz257",fontsize=16,color="green",shape="box"];5315[label="vuz254",fontsize=16,color="green",shape="box"];5316[label="vuz253",fontsize=16,color="green",shape="box"];5317[label="vuz258",fontsize=16,color="green",shape="box"];5318 -> 5313[label="",style="dashed", color="red", weight=0]; 5318[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not False) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not False) `rem` Integer vuz257)",fontsize=16,color="magenta"];4197[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Neg Zero)) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4197 -> 4310[label="",style="solid", color="black", weight=3]; 4431[label="Neg Zero",fontsize=16,color="green",shape="box"];4432[label="Neg Zero",fontsize=16,color="green",shape="box"];5297[label="Integer vuz236 `quot` (`negate` Integer (Pos (Succ vuz237)))",fontsize=16,color="black",shape="box"];5297 -> 5310[label="",style="solid", color="black", weight=3]; 4413[label="primQuotInt (Pos vuz590) (Pos (Succ vuz20100))",fontsize=16,color="black",shape="box"];4413 -> 4444[label="",style="solid", color="black", weight=3]; 4414[label="primQuotInt (Pos vuz590) (Pos Zero)",fontsize=16,color="black",shape="box"];4414 -> 4445[label="",style="solid", color="black", weight=3]; 4415[label="primQuotInt (Pos vuz590) (Neg (Succ vuz20100))",fontsize=16,color="black",shape="box"];4415 -> 4446[label="",style="solid", color="black", weight=3]; 4416[label="primQuotInt (Pos vuz590) (Neg Zero)",fontsize=16,color="black",shape="box"];4416 -> 4447[label="",style="solid", color="black", weight=3]; 4417[label="primQuotInt (Neg vuz590) (Pos (Succ vuz20100))",fontsize=16,color="black",shape="box"];4417 -> 4448[label="",style="solid", color="black", weight=3]; 4418[label="primQuotInt (Neg vuz590) (Pos Zero)",fontsize=16,color="black",shape="box"];4418 -> 4449[label="",style="solid", color="black", weight=3]; 4419[label="primQuotInt (Neg vuz590) (Neg (Succ vuz20100))",fontsize=16,color="black",shape="box"];4419 -> 4450[label="",style="solid", color="black", weight=3]; 4420[label="primQuotInt (Neg vuz590) (Neg Zero)",fontsize=16,color="black",shape="box"];4420 -> 4451[label="",style="solid", color="black", weight=3]; 4205 -> 471[label="",style="dashed", color="red", weight=0]; 4205[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];4205 -> 4320[label="",style="dashed", color="magenta", weight=3]; 4212[label="Neg Zero",fontsize=16,color="green",shape="box"];5319[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) False `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) False `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5319 -> 5327[label="",style="solid", color="black", weight=3]; 5320[label="vuz250",fontsize=16,color="green",shape="box"];5321[label="vuz246",fontsize=16,color="green",shape="box"];5322[label="vuz247",fontsize=16,color="green",shape="box"];5323[label="vuz251",fontsize=16,color="green",shape="box"];4492 -> 2122[label="",style="dashed", color="red", weight=0]; 4492[label="primRemInt vuz222 vuz158",fontsize=16,color="magenta"];4492 -> 4511[label="",style="dashed", color="magenta", weight=3]; 4492 -> 4512[label="",style="dashed", color="magenta", weight=3]; 4493 -> 3373[label="",style="dashed", color="red", weight=0]; 4493[label="Integer (primRemInt vuz222 vuz158) == vuz186",fontsize=16,color="magenta"];4493 -> 4513[label="",style="dashed", color="magenta", weight=3]; 4493 -> 4514[label="",style="dashed", color="magenta", weight=3]; 4491[label="Integer vuz59 `quot` gcd0Gcd'1 vuz223 (Integer vuz158) (Integer vuz224)",fontsize=16,color="burlywood",shape="triangle"];6005[label="vuz223/False",fontsize=10,color="white",style="solid",shape="box"];4491 -> 6005[label="",style="solid", color="burlywood", weight=9]; 6005 -> 4515[label="",style="solid", color="burlywood", weight=3]; 6006[label="vuz223/True",fontsize=10,color="white",style="solid",shape="box"];4491 -> 6006[label="",style="solid", color="burlywood", weight=9]; 6006 -> 4516[label="",style="solid", color="burlywood", weight=3]; 4301[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Pos Zero)) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4301 -> 4421[label="",style="solid", color="black", weight=3]; 4304 -> 4426[label="",style="dashed", color="red", weight=0]; 4304[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg (Succ vuz6000))) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (primNegInt (Neg (Succ vuz6000))) `rem` Integer vuz158)",fontsize=16,color="magenta"];4304 -> 4433[label="",style="dashed", color="magenta", weight=3]; 4304 -> 4434[label="",style="dashed", color="magenta", weight=3]; 5326[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) True `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) True `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5326 -> 5329[label="",style="solid", color="black", weight=3]; 4310[label="Integer vuz59 `quot` gcd0Gcd'1 ((`negate` Integer (Neg Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) ((`negate` Integer (Neg Zero)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4310 -> 4457[label="",style="solid", color="black", weight=3]; 5310 -> 4130[label="",style="dashed", color="red", weight=0]; 5310[label="Integer vuz236 `quot` Integer (primNegInt (Pos (Succ vuz237)))",fontsize=16,color="magenta"];5310 -> 5324[label="",style="dashed", color="magenta", weight=3]; 5310 -> 5325[label="",style="dashed", color="magenta", weight=3]; 4444[label="Pos (primDivNatS vuz590 (Succ vuz20100))",fontsize=16,color="green",shape="box"];4444 -> 4517[label="",style="dashed", color="green", weight=3]; 4445 -> 1176[label="",style="dashed", color="red", weight=0]; 4445[label="error []",fontsize=16,color="magenta"];4446[label="Neg (primDivNatS vuz590 (Succ vuz20100))",fontsize=16,color="green",shape="box"];4446 -> 4518[label="",style="dashed", color="green", weight=3]; 4447 -> 1176[label="",style="dashed", color="red", weight=0]; 4447[label="error []",fontsize=16,color="magenta"];4448[label="Neg (primDivNatS vuz590 (Succ vuz20100))",fontsize=16,color="green",shape="box"];4448 -> 4519[label="",style="dashed", color="green", weight=3]; 4449 -> 1176[label="",style="dashed", color="red", weight=0]; 4449[label="error []",fontsize=16,color="magenta"];4450[label="Pos (primDivNatS vuz590 (Succ vuz20100))",fontsize=16,color="green",shape="box"];4450 -> 4520[label="",style="dashed", color="green", weight=3]; 4451 -> 1176[label="",style="dashed", color="red", weight=0]; 4451[label="error []",fontsize=16,color="magenta"];4320[label="Pos Zero",fontsize=16,color="green",shape="box"];5327[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz247))) otherwise `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal0 (Integer (Pos (Succ vuz247))) otherwise `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5327 -> 5330[label="",style="solid", color="black", weight=3]; 4511[label="vuz222",fontsize=16,color="green",shape="box"];4512[label="vuz158",fontsize=16,color="green",shape="box"];4513 -> 2122[label="",style="dashed", color="red", weight=0]; 4513[label="primRemInt vuz222 vuz158",fontsize=16,color="magenta"];4513 -> 4551[label="",style="dashed", color="magenta", weight=3]; 4513 -> 4552[label="",style="dashed", color="magenta", weight=3]; 4514[label="vuz186",fontsize=16,color="green",shape="box"];4515[label="Integer vuz59 `quot` gcd0Gcd'1 False (Integer vuz158) (Integer vuz224)",fontsize=16,color="black",shape="box"];4515 -> 4553[label="",style="solid", color="black", weight=3]; 4516[label="Integer vuz59 `quot` gcd0Gcd'1 True (Integer vuz158) (Integer vuz224)",fontsize=16,color="black",shape="box"];4516 -> 4554[label="",style="solid", color="black", weight=3]; 4421[label="Integer vuz59 `quot` gcd0Gcd'1 ((`negate` Integer (Pos Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) ((`negate` Integer (Pos Zero)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4421 -> 4474[label="",style="solid", color="black", weight=3]; 4433 -> 471[label="",style="dashed", color="red", weight=0]; 4433[label="primNegInt (Neg (Succ vuz6000))",fontsize=16,color="magenta"];4433 -> 4475[label="",style="dashed", color="magenta", weight=3]; 4434 -> 471[label="",style="dashed", color="red", weight=0]; 4434[label="primNegInt (Neg (Succ vuz6000))",fontsize=16,color="magenta"];4434 -> 4476[label="",style="dashed", color="magenta", weight=3]; 5329 -> 4426[label="",style="dashed", color="red", weight=0]; 5329[label="Integer vuz253 `quot` gcd0Gcd'1 (Integer (Neg (Succ vuz254)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (Integer (Neg (Succ vuz254)) `rem` Integer vuz257)",fontsize=16,color="magenta"];5329 -> 5331[label="",style="dashed", color="magenta", weight=3]; 5329 -> 5332[label="",style="dashed", color="magenta", weight=3]; 5329 -> 5333[label="",style="dashed", color="magenta", weight=3]; 5329 -> 5334[label="",style="dashed", color="magenta", weight=3]; 5329 -> 5335[label="",style="dashed", color="magenta", weight=3]; 4457 -> 4426[label="",style="dashed", color="red", weight=0]; 4457[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (primNegInt (Neg Zero)) `rem` Integer vuz158)",fontsize=16,color="magenta"];4457 -> 4526[label="",style="dashed", color="magenta", weight=3]; 4457 -> 4527[label="",style="dashed", color="magenta", weight=3]; 5324[label="vuz236",fontsize=16,color="green",shape="box"];5325 -> 471[label="",style="dashed", color="red", weight=0]; 5325[label="primNegInt (Pos (Succ vuz237))",fontsize=16,color="magenta"];5325 -> 5328[label="",style="dashed", color="magenta", weight=3]; 4517 -> 1210[label="",style="dashed", color="red", weight=0]; 4517[label="primDivNatS vuz590 (Succ vuz20100)",fontsize=16,color="magenta"];4517 -> 4555[label="",style="dashed", color="magenta", weight=3]; 4517 -> 4556[label="",style="dashed", color="magenta", weight=3]; 4518 -> 1210[label="",style="dashed", color="red", weight=0]; 4518[label="primDivNatS vuz590 (Succ vuz20100)",fontsize=16,color="magenta"];4518 -> 4557[label="",style="dashed", color="magenta", weight=3]; 4518 -> 4558[label="",style="dashed", color="magenta", weight=3]; 4519 -> 1210[label="",style="dashed", color="red", weight=0]; 4519[label="primDivNatS vuz590 (Succ vuz20100)",fontsize=16,color="magenta"];4519 -> 4559[label="",style="dashed", color="magenta", weight=3]; 4519 -> 4560[label="",style="dashed", color="magenta", weight=3]; 4520 -> 1210[label="",style="dashed", color="red", weight=0]; 4520[label="primDivNatS vuz590 (Succ vuz20100)",fontsize=16,color="magenta"];4520 -> 4561[label="",style="dashed", color="magenta", weight=3]; 4520 -> 4562[label="",style="dashed", color="magenta", weight=3]; 5330[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz247))) True `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal0 (Integer (Pos (Succ vuz247))) True `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5330 -> 5336[label="",style="solid", color="black", weight=3]; 4551[label="vuz222",fontsize=16,color="green",shape="box"];4552[label="vuz158",fontsize=16,color="green",shape="box"];4553[label="Integer vuz59 `quot` gcd0Gcd'0 (Integer vuz158) (Integer vuz224)",fontsize=16,color="black",shape="box"];4553 -> 4596[label="",style="solid", color="black", weight=3]; 4554 -> 4130[label="",style="dashed", color="red", weight=0]; 4554[label="Integer vuz59 `quot` Integer vuz158",fontsize=16,color="magenta"];4554 -> 4597[label="",style="dashed", color="magenta", weight=3]; 4474 -> 4426[label="",style="dashed", color="red", weight=0]; 4474[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (primNegInt (Pos Zero)) `rem` Integer vuz158)",fontsize=16,color="magenta"];4474 -> 4547[label="",style="dashed", color="magenta", weight=3]; 4474 -> 4548[label="",style="dashed", color="magenta", weight=3]; 4475[label="Neg (Succ vuz6000)",fontsize=16,color="green",shape="box"];4476[label="Neg (Succ vuz6000)",fontsize=16,color="green",shape="box"];5331[label="vuz257",fontsize=16,color="green",shape="box"];5332[label="Neg (Succ vuz254)",fontsize=16,color="green",shape="box"];5333[label="vuz253",fontsize=16,color="green",shape="box"];5334[label="Neg (Succ vuz254)",fontsize=16,color="green",shape="box"];5335[label="vuz258",fontsize=16,color="green",shape="box"];4526 -> 471[label="",style="dashed", color="red", weight=0]; 4526[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];4526 -> 4570[label="",style="dashed", color="magenta", weight=3]; 4527 -> 471[label="",style="dashed", color="red", weight=0]; 4527[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];4527 -> 4571[label="",style="dashed", color="magenta", weight=3]; 5328[label="Pos (Succ vuz237)",fontsize=16,color="green",shape="box"];4555[label="vuz20100",fontsize=16,color="green",shape="box"];4556[label="vuz590",fontsize=16,color="green",shape="box"];4557[label="vuz20100",fontsize=16,color="green",shape="box"];4558[label="vuz590",fontsize=16,color="green",shape="box"];4559[label="vuz20100",fontsize=16,color="green",shape="box"];4560[label="vuz590",fontsize=16,color="green",shape="box"];4561[label="vuz20100",fontsize=16,color="green",shape="box"];4562[label="vuz590",fontsize=16,color="green",shape="box"];5336[label="Integer vuz246 `quot` gcd0Gcd'1 ((`negate` Integer (Pos (Succ vuz247))) `rem` Integer vuz250 == vuz251) (Integer vuz250) ((`negate` Integer (Pos (Succ vuz247))) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5336 -> 5337[label="",style="solid", color="black", weight=3]; 4596[label="Integer vuz59 `quot` gcd0Gcd' (Integer vuz224) (Integer vuz158 `rem` Integer vuz224)",fontsize=16,color="black",shape="box"];4596 -> 4630[label="",style="solid", color="black", weight=3]; 4597[label="vuz158",fontsize=16,color="green",shape="box"];4547 -> 471[label="",style="dashed", color="red", weight=0]; 4547[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];4547 -> 4592[label="",style="dashed", color="magenta", weight=3]; 4548 -> 471[label="",style="dashed", color="red", weight=0]; 4548[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];4548 -> 4593[label="",style="dashed", color="magenta", weight=3]; 4570[label="Neg Zero",fontsize=16,color="green",shape="box"];4571[label="Neg Zero",fontsize=16,color="green",shape="box"];5337 -> 4426[label="",style="dashed", color="red", weight=0]; 5337[label="Integer vuz246 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos (Succ vuz247))) `rem` Integer vuz250 == vuz251) (Integer vuz250) (Integer (primNegInt (Pos (Succ vuz247))) `rem` Integer vuz250)",fontsize=16,color="magenta"];5337 -> 5338[label="",style="dashed", color="magenta", weight=3]; 5337 -> 5339[label="",style="dashed", color="magenta", weight=3]; 5337 -> 5340[label="",style="dashed", color="magenta", weight=3]; 5337 -> 5341[label="",style="dashed", color="magenta", weight=3]; 5337 -> 5342[label="",style="dashed", color="magenta", weight=3]; 4630[label="Integer vuz59 `quot` gcd0Gcd'2 (Integer vuz224) (Integer vuz158 `rem` Integer vuz224)",fontsize=16,color="black",shape="box"];4630 -> 4658[label="",style="solid", color="black", weight=3]; 4592[label="Pos Zero",fontsize=16,color="green",shape="box"];4593[label="Pos Zero",fontsize=16,color="green",shape="box"];5338[label="vuz250",fontsize=16,color="green",shape="box"];5339 -> 471[label="",style="dashed", color="red", weight=0]; 5339[label="primNegInt (Pos (Succ vuz247))",fontsize=16,color="magenta"];5339 -> 5343[label="",style="dashed", color="magenta", weight=3]; 5340[label="vuz246",fontsize=16,color="green",shape="box"];5341 -> 471[label="",style="dashed", color="red", weight=0]; 5341[label="primNegInt (Pos (Succ vuz247))",fontsize=16,color="magenta"];5341 -> 5344[label="",style="dashed", color="magenta", weight=3]; 5342[label="vuz251",fontsize=16,color="green",shape="box"];4658 -> 4426[label="",style="dashed", color="red", weight=0]; 4658[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer vuz158 `rem` Integer vuz224 == fromInt (Pos Zero)) (Integer vuz224) (Integer vuz158 `rem` Integer vuz224)",fontsize=16,color="magenta"];4658 -> 4697[label="",style="dashed", color="magenta", weight=3]; 4658 -> 4698[label="",style="dashed", color="magenta", weight=3]; 4658 -> 4699[label="",style="dashed", color="magenta", weight=3]; 4658 -> 4700[label="",style="dashed", color="magenta", weight=3]; 5343[label="Pos (Succ vuz247)",fontsize=16,color="green",shape="box"];5344[label="Pos (Succ vuz247)",fontsize=16,color="green",shape="box"];4697[label="vuz224",fontsize=16,color="green",shape="box"];4698[label="vuz158",fontsize=16,color="green",shape="box"];4699[label="vuz158",fontsize=16,color="green",shape="box"];4700 -> 2031[label="",style="dashed", color="red", weight=0]; 4700[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];} ---------------------------------------- (12) Complex Obligation (AND) ---------------------------------------- (13) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot6(vuz214, vuz215, Succ(vuz2160), Succ(vuz2170), vuz218, vuz219, vuz220) -> new_quot6(vuz214, vuz215, vuz2160, vuz2170, vuz218, vuz219, vuz220) 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_quot6(vuz214, vuz215, Succ(vuz2160), Succ(vuz2170), vuz218, vuz219, vuz220) -> new_quot6(vuz214, vuz215, vuz2160, vuz2170, vuz218, vuz219, vuz220) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4, 5 >= 5, 6 >= 6, 7 >= 7 ---------------------------------------- (15) YES ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot5(vuz59, vuz158, Succ(vuz160000), Succ(vuz1200000), vuz118, vuz60, vuz157) -> new_quot5(vuz59, vuz158, vuz160000, vuz1200000, vuz118, vuz60, vuz157) 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(vuz59, vuz158, Succ(vuz160000), Succ(vuz1200000), vuz118, vuz60, vuz157) -> new_quot5(vuz59, vuz158, vuz160000, vuz1200000, vuz118, vuz60, vuz157) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4, 5 >= 5, 6 >= 6, 7 >= 7 ---------------------------------------- (18) YES ---------------------------------------- (19) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot3(vuz253, vuz254, Succ(vuz2550), Succ(vuz2560), vuz257, vuz258) -> new_quot3(vuz253, vuz254, vuz2550, vuz2560, vuz257, vuz258) 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_quot3(vuz253, vuz254, Succ(vuz2550), Succ(vuz2560), vuz257, vuz258) -> new_quot3(vuz253, vuz254, vuz2550, vuz2560, vuz257, vuz258) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4, 5 >= 5, 6 >= 6 ---------------------------------------- (21) YES ---------------------------------------- (22) Obligation: Q DP problem: The TRS P consists of the following rules: new_signumReal10(vuz162, Succ(vuz1630), Succ(vuz1640), h) -> new_signumReal10(vuz162, vuz1630, vuz1640, h) 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_signumReal10(vuz162, Succ(vuz1630), Succ(vuz1640), h) -> new_signumReal10(vuz162, vuz1630, vuz1640, h) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4 ---------------------------------------- (24) YES ---------------------------------------- (25) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS(Succ(Succ(vuz18000)), Succ(vuz50000)) -> new_primDivNatS0(vuz18000, vuz50000, vuz18000, vuz50000) new_primDivNatS0(vuz175, vuz176, Zero, Zero) -> new_primDivNatS00(vuz175, vuz176) new_primDivNatS(Succ(Succ(vuz18000)), Zero) -> new_primDivNatS(new_primMinusNatS0(vuz18000), Zero) new_primDivNatS00(vuz175, vuz176) -> new_primDivNatS(new_primMinusNatS2(Succ(vuz175), Succ(vuz176)), Succ(vuz176)) new_primDivNatS0(vuz175, vuz176, Succ(vuz1770), Succ(vuz1780)) -> new_primDivNatS0(vuz175, vuz176, vuz1770, vuz1780) new_primDivNatS0(vuz175, vuz176, Succ(vuz1770), Zero) -> new_primDivNatS(new_primMinusNatS2(Succ(vuz175), Succ(vuz176)), Succ(vuz176)) new_primDivNatS(Succ(Zero), Zero) -> new_primDivNatS(new_primMinusNatS1, Zero) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(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_primDivNatS(Succ(Succ(vuz18000)), Zero) -> new_primDivNatS(new_primMinusNatS0(vuz18000), Zero) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) 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(vuz18000)), Zero) -> new_primDivNatS(new_primMinusNatS0(vuz18000), Zero) Strictly oriented rules of the TRS R: new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero Used ordering: Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 2 POL(new_primDivNatS(x_1, x_2)) = x_1 + x_2 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 2 POL(new_primMinusNatS2(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 ---------------------------------------- (30) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (31) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (32) YES ---------------------------------------- (33) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(vuz175, vuz176, Zero, Zero) -> new_primDivNatS00(vuz175, vuz176) new_primDivNatS00(vuz175, vuz176) -> new_primDivNatS(new_primMinusNatS2(Succ(vuz175), Succ(vuz176)), Succ(vuz176)) new_primDivNatS(Succ(Succ(vuz18000)), Succ(vuz50000)) -> new_primDivNatS0(vuz18000, vuz50000, vuz18000, vuz50000) new_primDivNatS0(vuz175, vuz176, Succ(vuz1770), Succ(vuz1780)) -> new_primDivNatS0(vuz175, vuz176, vuz1770, vuz1780) new_primDivNatS0(vuz175, vuz176, Succ(vuz1770), Zero) -> new_primDivNatS(new_primMinusNatS2(Succ(vuz175), Succ(vuz176)), Succ(vuz176)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (34) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_primDivNatS(Succ(Succ(vuz18000)), Succ(vuz50000)) -> new_primDivNatS0(vuz18000, vuz50000, vuz18000, vuz50000) 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_primMinusNatS2(x_1, x_2)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero ---------------------------------------- (35) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(vuz175, vuz176, Zero, Zero) -> new_primDivNatS00(vuz175, vuz176) new_primDivNatS00(vuz175, vuz176) -> new_primDivNatS(new_primMinusNatS2(Succ(vuz175), Succ(vuz176)), Succ(vuz176)) new_primDivNatS0(vuz175, vuz176, Succ(vuz1770), Succ(vuz1780)) -> new_primDivNatS0(vuz175, vuz176, vuz1770, vuz1780) new_primDivNatS0(vuz175, vuz176, Succ(vuz1770), Zero) -> new_primDivNatS(new_primMinusNatS2(Succ(vuz175), Succ(vuz176)), Succ(vuz176)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (36) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. ---------------------------------------- (37) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(vuz175, vuz176, Succ(vuz1770), Succ(vuz1780)) -> new_primDivNatS0(vuz175, vuz176, vuz1770, vuz1780) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (38) 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(vuz175, vuz176, Succ(vuz1770), Succ(vuz1780)) -> new_primDivNatS0(vuz175, vuz176, vuz1770, vuz1780) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (39) YES ---------------------------------------- (40) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMulNat(Succ(vuz3000), Succ(vuz4100)) -> new_primMulNat(vuz3000, Succ(vuz4100)) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (41) 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(vuz3000), Succ(vuz4100)) -> new_primMulNat(vuz3000, Succ(vuz4100)) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (42) YES ---------------------------------------- (43) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMinusNatS(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS(vuz1540, vuz1550) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (44) 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(vuz1540), Succ(vuz1550)) -> new_primMinusNatS(vuz1540, vuz1550) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (45) YES ---------------------------------------- (46) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot4(vuz246, vuz247, Succ(vuz2480), Succ(vuz2490), vuz250, vuz251) -> new_quot4(vuz246, vuz247, vuz2480, vuz2490, vuz250, vuz251) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (47) 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(vuz246, vuz247, Succ(vuz2480), Succ(vuz2490), vuz250, vuz251) -> new_quot4(vuz246, vuz247, vuz2480, vuz2490, vuz250, vuz251) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4, 5 >= 5, 6 >= 6 ---------------------------------------- (48) YES ---------------------------------------- (49) Obligation: Q DP problem: The TRS P consists of the following rules: new_primPlusNat(Succ(vuz1700), Succ(vuz41000)) -> new_primPlusNat(vuz1700, vuz41000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (50) 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(vuz1700), Succ(vuz41000)) -> new_primPlusNat(vuz1700, vuz41000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (51) YES ---------------------------------------- (52) Obligation: Q DP problem: The TRS P consists of the following rules: new_signumReal12(vuz134, Succ(vuz1350), Succ(vuz1360), h) -> new_signumReal12(vuz134, vuz1350, vuz1360, h) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (53) 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_signumReal12(vuz134, Succ(vuz1350), Succ(vuz1360), h) -> new_signumReal12(vuz134, vuz1350, vuz1360, h) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4 ---------------------------------------- (54) YES ---------------------------------------- (55) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Succ(vuz90000)), Zero) -> new_primModNatS(new_primMinusNatS0(vuz90000), Zero) new_primModNatS(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS0(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS(Succ(Zero), Zero) -> new_primModNatS(new_primMinusNatS1, Zero) new_primModNatS0(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS0(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS0(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS0(vuz191, vuz192, Zero, Zero) -> new_primModNatS00(vuz191, vuz192) new_primModNatS00(vuz191, vuz192) -> new_primModNatS(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (56) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (57) Complex Obligation (AND) ---------------------------------------- (58) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS0(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS0(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS0(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS0(vuz191, vuz192, Zero, Zero) -> new_primModNatS00(vuz191, vuz192) new_primModNatS00(vuz191, vuz192) -> new_primModNatS(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (59) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_primModNatS(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS0(vuz90000, vuz116000, vuz90000, vuz116000) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS2(x_1, x_2)) = x_1 POL(new_primModNatS(x_1, x_2)) = x_1 POL(new_primModNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 POL(new_primModNatS00(x_1, x_2)) = 1 + x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero ---------------------------------------- (60) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS0(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS0(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS0(vuz191, vuz192, Zero, Zero) -> new_primModNatS00(vuz191, vuz192) new_primModNatS00(vuz191, vuz192) -> new_primModNatS(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (61) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. ---------------------------------------- (62) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS0(vuz191, vuz192, vuz1930, vuz1940) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (63) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_primModNatS0(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS0(vuz191, vuz192, vuz1930, vuz1940) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (64) YES ---------------------------------------- (65) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Succ(vuz90000)), Zero) -> new_primModNatS(new_primMinusNatS0(vuz90000), Zero) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (66) MRRProof (EQUIVALENT) By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. Strictly oriented dependency pairs: new_primModNatS(Succ(Succ(vuz90000)), Zero) -> new_primModNatS(new_primMinusNatS0(vuz90000), Zero) Strictly oriented rules of the TRS R: new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero Used ordering: Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 2 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 2 POL(new_primMinusNatS2(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 POL(new_primModNatS(x_1, x_2)) = x_1 + x_2 ---------------------------------------- (67) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (68) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (69) YES ---------------------------------------- (70) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz59, vuz222, vuz158, vuz186, vuz221) -> new_quot2(vuz59, new_esEs0(new_primRemInt(vuz222, vuz158), vuz186), vuz158, new_primRemInt(vuz222, vuz158)) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, new_fromInt0, vuz158) The TRS R consists of the following rules: new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_error -> error([]) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_esEs0(vuz158, Integer(vuz1180)) -> new_primEqInt(vuz158, vuz1180) new_primEqNat0(Succ(vuz16000), Zero) -> False new_primEqNat0(Zero, Succ(vuz47000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_fromInt0 -> Integer(Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqNat0(Zero, Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_esEs0(x0, Integer(x1)) new_primEqNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_fromInt0 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (71) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, new_fromInt0, vuz158) at position [3] we obtained the following new rules [LPAR04]: (new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158),new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158)) ---------------------------------------- (72) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz59, vuz222, vuz158, vuz186, vuz221) -> new_quot2(vuz59, new_esEs0(new_primRemInt(vuz222, vuz158), vuz186), vuz158, new_primRemInt(vuz222, vuz158)) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) The TRS R consists of the following rules: new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_error -> error([]) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_esEs0(vuz158, Integer(vuz1180)) -> new_primEqInt(vuz158, vuz1180) new_primEqNat0(Succ(vuz16000), Zero) -> False new_primEqNat0(Zero, Succ(vuz47000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_fromInt0 -> Integer(Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqNat0(Zero, Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_esEs0(x0, Integer(x1)) new_primEqNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_fromInt0 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (73) 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. ---------------------------------------- (74) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz59, vuz222, vuz158, vuz186, vuz221) -> new_quot2(vuz59, new_esEs0(new_primRemInt(vuz222, vuz158), vuz186), vuz158, new_primRemInt(vuz222, vuz158)) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) The TRS R consists of the following rules: new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_esEs0(vuz158, Integer(vuz1180)) -> new_primEqInt(vuz158, vuz1180) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz16000), Zero) -> False new_primEqNat0(Zero, Succ(vuz47000)) -> False new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqNat0(Zero, Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_esEs0(x0, Integer(x1)) new_primEqNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_fromInt0 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (75) 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 ---------------------------------------- (76) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz59, vuz222, vuz158, vuz186, vuz221) -> new_quot2(vuz59, new_esEs0(new_primRemInt(vuz222, vuz158), vuz186), vuz158, new_primRemInt(vuz222, vuz158)) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) The TRS R consists of the following rules: new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_esEs0(vuz158, Integer(vuz1180)) -> new_primEqInt(vuz158, vuz1180) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz16000), Zero) -> False new_primEqNat0(Zero, Succ(vuz47000)) -> False new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqNat0(Zero, Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_esEs0(x0, Integer(x1)) new_primEqNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (77) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_quot1(vuz59, vuz222, vuz158, vuz186, vuz221) -> new_quot2(vuz59, new_esEs0(new_primRemInt(vuz222, vuz158), vuz186), vuz158, new_primRemInt(vuz222, vuz158)) we obtained the following new rules [LPAR04]: (new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_esEs0(new_primRemInt(z1, z2), Integer(Pos(Zero))), z2, new_primRemInt(z1, z2)),new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_esEs0(new_primRemInt(z1, z2), Integer(Pos(Zero))), z2, new_primRemInt(z1, z2))) ---------------------------------------- (78) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_esEs0(new_primRemInt(z1, z2), Integer(Pos(Zero))), z2, new_primRemInt(z1, z2)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_esEs0(vuz158, Integer(vuz1180)) -> new_primEqInt(vuz158, vuz1180) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz16000), Zero) -> False new_primEqNat0(Zero, Succ(vuz47000)) -> False new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqNat0(Zero, Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_esEs0(x0, Integer(x1)) new_primEqNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (79) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_esEs0(new_primRemInt(z1, z2), Integer(Pos(Zero))), z2, new_primRemInt(z1, z2)) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)),new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2))) ---------------------------------------- (80) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_esEs0(vuz158, Integer(vuz1180)) -> new_primEqInt(vuz158, vuz1180) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz16000), Zero) -> False new_primEqNat0(Zero, Succ(vuz47000)) -> False new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqNat0(Zero, Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_esEs0(x0, Integer(x1)) new_primEqNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (81) 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. ---------------------------------------- (82) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqNat0(Zero, Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_esEs0(x0, Integer(x1)) new_primEqNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (83) 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(Zero, Succ(x0)) new_esEs0(x0, Integer(x1)) new_primEqNat0(Succ(x0), Zero) new_primEqNat0(Succ(x0), Succ(x1)) ---------------------------------------- (84) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (85) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) the following chains were created: *We consider the chain new_quot2(x3, False, x4, x5) -> new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4), new_quot1(x6, x7, x8, Integer(Pos(Zero)), x7) -> new_quot2(x6, new_primEqInt(new_primRemInt(x7, x8), Pos(Zero)), x8, new_primRemInt(x7, x8)) which results in the following constraint: (1) (new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4)=new_quot1(x6, x7, x8, Integer(Pos(Zero)), x7) ==> new_quot2(x3, False, x4, x5)_>=_new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot2(x3, False, x4, x5)_>=_new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4)) For Pair new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) the following chains were created: *We consider the chain new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10) -> new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11)), new_quot2(x12, False, x13, x14) -> new_quot1(x12, x13, x14, Integer(Pos(Zero)), x13) which results in the following constraint: (1) (new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))=new_quot2(x12, False, x13, x14) ==> new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (new_primRemInt(x10, x11)=x18 & Pos(Zero)=x19 & new_primEqInt(x18, x19)=False ==> new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x18, x19)=False which results in the following new constraints: (3) (False=False & new_primRemInt(x10, x11)=Pos(Succ(x20)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) (4) (False=False & new_primRemInt(x10, x11)=Neg(Succ(x22)) & Pos(Zero)=Pos(x21) ==> new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) We simplified constraint (3) using rules (I), (II) which results in the following new constraint: (5) (new_primRemInt(x10, x11)=Pos(Succ(x20)) ==> new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) We simplified constraint (4) using rules (I), (II), (IV) which results in the following new constraint: (6) (new_primRemInt(x10, x11)=Neg(Succ(x22)) ==> new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x10, x11)=Pos(Succ(x20)) which results in the following new constraints: (7) (Pos(new_primModNatS1(x24, x23))=Pos(Succ(x20)) ==> new_quot1(x9, Pos(x24), Neg(Succ(x23)), Integer(Pos(Zero)), Pos(x24))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x24), Neg(Succ(x23))), Pos(Zero)), Neg(Succ(x23)), new_primRemInt(Pos(x24), Neg(Succ(x23))))) (8) (Pos(new_primModNatS1(x26, x25))=Pos(Succ(x20)) ==> new_quot1(x9, Pos(x26), Pos(Succ(x25)), Integer(Pos(Zero)), Pos(x26))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x26), Pos(Succ(x25))), Pos(Zero)), Pos(Succ(x25)), new_primRemInt(Pos(x26), Pos(Succ(x25))))) (9) (new_error=Pos(Succ(x20)) ==> new_quot1(x9, Neg(x27), Neg(Zero), Integer(Pos(Zero)), Neg(x27))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x27), Neg(Zero)), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x27), Neg(Zero)))) (10) (new_error=Pos(Succ(x20)) ==> new_quot1(x9, Pos(x30), Pos(Zero), Integer(Pos(Zero)), Pos(x30))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x30), Pos(Zero)), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x30), Pos(Zero)))) (11) (new_error=Pos(Succ(x20)) ==> new_quot1(x9, Pos(x33), Neg(Zero), Integer(Pos(Zero)), Pos(x33))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x33), Neg(Zero)), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x33), Neg(Zero)))) (12) (new_error=Pos(Succ(x20)) ==> new_quot1(x9, Neg(x34), Pos(Zero), Integer(Pos(Zero)), Neg(x34))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x34), Pos(Zero)), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x34), Pos(Zero)))) We simplified constraint (7) using rules (I), (II) which results in the following new constraint: (13) (new_primModNatS1(x24, x23)=Succ(x20) ==> new_quot1(x9, Pos(x24), Neg(Succ(x23)), Integer(Pos(Zero)), Pos(x24))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x24), Neg(Succ(x23))), Pos(Zero)), Neg(Succ(x23)), new_primRemInt(Pos(x24), Neg(Succ(x23))))) We simplified constraint (8) using rules (I), (II) which results in the following new constraint: (14) (new_primModNatS1(x26, x25)=Succ(x20) ==> new_quot1(x9, Pos(x26), Pos(Succ(x25)), Integer(Pos(Zero)), Pos(x26))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x26), Pos(Succ(x25))), Pos(Zero)), Pos(Succ(x25)), new_primRemInt(Pos(x26), Pos(Succ(x25))))) We solved constraint (9) using rule (V) (with possible (I) afterwards).We solved constraint (10) using rule (V) (with possible (I) afterwards).We solved constraint (11) using rule (V) (with possible (I) afterwards).We solved constraint (12) using rule (V) (with possible (I) afterwards).We simplified constraint (13) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x24, x23)=Succ(x20) which results in the following new constraints: (15) (Succ(Zero)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Zero)), Neg(Succ(Succ(x35))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))), Pos(Zero)), Neg(Succ(Succ(x35))), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))))) (16) (new_primModNatS1(new_primMinusNatS0(x37), Zero)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Succ(x37))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x37))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))))) (17) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))))) (18) (new_primModNatS02(x39, x38, x39, x38)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Succ(x39))), Neg(Succ(Succ(x38))), Integer(Pos(Zero)), Pos(Succ(Succ(x39))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x39))), Neg(Succ(Succ(x38)))), Pos(Zero)), Neg(Succ(Succ(x38))), new_primRemInt(Pos(Succ(Succ(x39))), Neg(Succ(Succ(x38)))))) We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint: (19) (new_quot1(x9, Pos(Succ(Zero)), Neg(Succ(Succ(x35))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))), Pos(Zero)), Neg(Succ(Succ(x35))), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))))) We simplified constraint (16) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_quot1(x9, Pos(Succ(Succ(x37))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x37))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))))) We simplified constraint (17) using rules (III), (IV), (VII) which results in the following new constraint: (21) (new_quot1(x9, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))))) We simplified constraint (18) using rules (III), (IV), (VII) which results in the following new constraint: (22) (new_quot1(x9, Pos(Succ(Succ(x44))), Neg(Succ(Succ(x45))), Integer(Pos(Zero)), Pos(Succ(Succ(x44))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x44))), Neg(Succ(Succ(x45)))), Pos(Zero)), Neg(Succ(Succ(x45))), new_primRemInt(Pos(Succ(Succ(x44))), Neg(Succ(Succ(x45)))))) We simplified constraint (14) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x26, x25)=Succ(x20) which results in the following new constraints: (23) (Succ(Zero)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Zero)), Pos(Succ(Succ(x46))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x46)))), Pos(Zero)), Pos(Succ(Succ(x46))), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x46)))))) (24) (new_primModNatS1(new_primMinusNatS0(x48), Zero)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Succ(x48))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x48))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x48))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x48))), Pos(Succ(Zero))))) (25) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))))) (26) (new_primModNatS02(x50, x49, x50, x49)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Succ(x50))), Pos(Succ(Succ(x49))), Integer(Pos(Zero)), Pos(Succ(Succ(x50))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x50))), Pos(Succ(Succ(x49)))), Pos(Zero)), Pos(Succ(Succ(x49))), new_primRemInt(Pos(Succ(Succ(x50))), Pos(Succ(Succ(x49)))))) We simplified constraint (23) using rules (I), (II), (IV) which results in the following new constraint: (27) (new_quot1(x9, Pos(Succ(Zero)), Pos(Succ(Succ(x46))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x46)))), Pos(Zero)), Pos(Succ(Succ(x46))), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x46)))))) We simplified constraint (24) using rules (III), (IV), (VII) which results in the following new constraint: (28) (new_quot1(x9, Pos(Succ(Succ(x48))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x48))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x48))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x48))), Pos(Succ(Zero))))) We simplified constraint (25) using rules (III), (IV), (VII) which results in the following new constraint: (29) (new_quot1(x9, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))))) We simplified constraint (26) using rules (III), (IV), (VII) which results in the following new constraint: (30) (new_quot1(x9, Pos(Succ(Succ(x55))), Pos(Succ(Succ(x56))), Integer(Pos(Zero)), Pos(Succ(Succ(x55))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x55))), Pos(Succ(Succ(x56)))), Pos(Zero)), Pos(Succ(Succ(x56))), new_primRemInt(Pos(Succ(Succ(x55))), Pos(Succ(Succ(x56)))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x10, x11)=Neg(Succ(x22)) which results in the following new constraints: (31) (new_error=Neg(Succ(x22)) ==> new_quot1(x9, Neg(x61), Neg(Zero), Integer(Pos(Zero)), Neg(x61))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x61), Neg(Zero)), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x61), Neg(Zero)))) (32) (Neg(new_primModNatS1(x63, x62))=Neg(Succ(x22)) ==> new_quot1(x9, Neg(x63), Pos(Succ(x62)), Integer(Pos(Zero)), Neg(x63))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x63), Pos(Succ(x62))), Pos(Zero)), Pos(Succ(x62)), new_primRemInt(Neg(x63), Pos(Succ(x62))))) (33) (new_error=Neg(Succ(x22)) ==> new_quot1(x9, Pos(x64), Pos(Zero), Integer(Pos(Zero)), Pos(x64))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x64), Pos(Zero)), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x64), Pos(Zero)))) (34) (Neg(new_primModNatS1(x66, x65))=Neg(Succ(x22)) ==> new_quot1(x9, Neg(x66), Neg(Succ(x65)), Integer(Pos(Zero)), Neg(x66))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x66), Neg(Succ(x65))), Pos(Zero)), Neg(Succ(x65)), new_primRemInt(Neg(x66), Neg(Succ(x65))))) (35) (new_error=Neg(Succ(x22)) ==> new_quot1(x9, Pos(x67), Neg(Zero), Integer(Pos(Zero)), Pos(x67))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x67), Neg(Zero)), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x67), Neg(Zero)))) (36) (new_error=Neg(Succ(x22)) ==> new_quot1(x9, Neg(x68), Pos(Zero), Integer(Pos(Zero)), Neg(x68))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x68), Pos(Zero)), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x68), 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(x63, x62)=Succ(x22) ==> new_quot1(x9, Neg(x63), Pos(Succ(x62)), Integer(Pos(Zero)), Neg(x63))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x63), Pos(Succ(x62))), Pos(Zero)), Pos(Succ(x62)), new_primRemInt(Neg(x63), Pos(Succ(x62))))) 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(x66, x65)=Succ(x22) ==> new_quot1(x9, Neg(x66), Neg(Succ(x65)), Integer(Pos(Zero)), Neg(x66))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x66), Neg(Succ(x65))), Pos(Zero)), Neg(Succ(x65)), new_primRemInt(Neg(x66), Neg(Succ(x65))))) 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(x63, x62)=Succ(x22) which results in the following new constraints: (39) (Succ(Zero)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Zero)), Pos(Succ(Succ(x69))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x69)))), Pos(Zero)), Pos(Succ(Succ(x69))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x69)))))) (40) (new_primModNatS1(new_primMinusNatS0(x71), Zero)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Succ(x71))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x71))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x71))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x71))), Pos(Succ(Zero))))) (41) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) (42) (new_primModNatS02(x73, x72, x73, x72)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Succ(x73))), Pos(Succ(Succ(x72))), Integer(Pos(Zero)), Neg(Succ(Succ(x73))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x73))), Pos(Succ(Succ(x72)))), Pos(Zero)), Pos(Succ(Succ(x72))), new_primRemInt(Neg(Succ(Succ(x73))), Pos(Succ(Succ(x72)))))) We simplified constraint (39) using rules (I), (II), (IV) which results in the following new constraint: (43) (new_quot1(x9, Neg(Succ(Zero)), Pos(Succ(Succ(x69))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x69)))), Pos(Zero)), Pos(Succ(Succ(x69))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x69)))))) We simplified constraint (40) using rules (III), (IV), (VII) which results in the following new constraint: (44) (new_quot1(x9, Neg(Succ(Succ(x71))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x71))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x71))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x71))), Pos(Succ(Zero))))) We simplified constraint (41) using rules (III), (IV), (VII) which results in the following new constraint: (45) (new_quot1(x9, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) We simplified constraint (42) using rules (III), (IV), (VII) which results in the following new constraint: (46) (new_quot1(x9, Neg(Succ(Succ(x78))), Pos(Succ(Succ(x79))), Integer(Pos(Zero)), Neg(Succ(Succ(x78))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x78))), Pos(Succ(Succ(x79)))), Pos(Zero)), Pos(Succ(Succ(x79))), new_primRemInt(Neg(Succ(Succ(x78))), Pos(Succ(Succ(x79)))))) We simplified constraint (38) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x66, x65)=Succ(x22) which results in the following new constraints: (47) (Succ(Zero)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Zero)), Neg(Succ(Succ(x80))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x80)))), Pos(Zero)), Neg(Succ(Succ(x80))), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x80)))))) (48) (new_primModNatS1(new_primMinusNatS0(x82), Zero)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Succ(x82))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x82))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x82))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x82))), Neg(Succ(Zero))))) (49) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))))) (50) (new_primModNatS02(x84, x83, x84, x83)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Succ(x84))), Neg(Succ(Succ(x83))), Integer(Pos(Zero)), Neg(Succ(Succ(x84))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x84))), Neg(Succ(Succ(x83)))), Pos(Zero)), Neg(Succ(Succ(x83))), new_primRemInt(Neg(Succ(Succ(x84))), Neg(Succ(Succ(x83)))))) We simplified constraint (47) using rules (I), (II), (IV) which results in the following new constraint: (51) (new_quot1(x9, Neg(Succ(Zero)), Neg(Succ(Succ(x80))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x80)))), Pos(Zero)), Neg(Succ(Succ(x80))), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x80)))))) We simplified constraint (48) using rules (III), (IV), (VII) which results in the following new constraint: (52) (new_quot1(x9, Neg(Succ(Succ(x82))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x82))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x82))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x82))), Neg(Succ(Zero))))) We simplified constraint (49) using rules (III), (IV), (VII) which results in the following new constraint: (53) (new_quot1(x9, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))))) We simplified constraint (50) using rules (III), (IV), (VII) which results in the following new constraint: (54) (new_quot1(x9, Neg(Succ(Succ(x89))), Neg(Succ(Succ(x90))), Integer(Pos(Zero)), Neg(Succ(Succ(x89))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x89))), Neg(Succ(Succ(x90)))), Pos(Zero)), Neg(Succ(Succ(x90))), new_primRemInt(Neg(Succ(Succ(x89))), Neg(Succ(Succ(x90)))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) *(new_quot2(x3, False, x4, x5)_>=_new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4)) *new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) *(new_quot1(x9, Pos(Succ(Zero)), Neg(Succ(Succ(x35))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))), Pos(Zero)), Neg(Succ(Succ(x35))), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))))) *(new_quot1(x9, Pos(Succ(Zero)), Pos(Succ(Succ(x46))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x46)))), Pos(Zero)), Pos(Succ(Succ(x46))), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x46)))))) *(new_quot1(x9, Neg(Succ(Zero)), Pos(Succ(Succ(x69))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x69)))), Pos(Zero)), Pos(Succ(Succ(x69))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x69)))))) *(new_quot1(x9, Neg(Succ(Zero)), Neg(Succ(Succ(x80))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x80)))), Pos(Zero)), Neg(Succ(Succ(x80))), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x80)))))) *(new_quot1(x9, Pos(Succ(Succ(x37))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x37))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))))) *(new_quot1(x9, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))))) *(new_quot1(x9, Pos(Succ(Succ(x44))), Neg(Succ(Succ(x45))), Integer(Pos(Zero)), Pos(Succ(Succ(x44))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x44))), Neg(Succ(Succ(x45)))), Pos(Zero)), Neg(Succ(Succ(x45))), new_primRemInt(Pos(Succ(Succ(x44))), Neg(Succ(Succ(x45)))))) *(new_quot1(x9, Pos(Succ(Succ(x48))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x48))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x48))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x48))), Pos(Succ(Zero))))) *(new_quot1(x9, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))))) *(new_quot1(x9, Pos(Succ(Succ(x55))), Pos(Succ(Succ(x56))), Integer(Pos(Zero)), Pos(Succ(Succ(x55))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x55))), Pos(Succ(Succ(x56)))), Pos(Zero)), Pos(Succ(Succ(x56))), new_primRemInt(Pos(Succ(Succ(x55))), Pos(Succ(Succ(x56)))))) *(new_quot1(x9, Neg(Succ(Succ(x71))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x71))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x71))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x71))), Pos(Succ(Zero))))) *(new_quot1(x9, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) *(new_quot1(x9, Neg(Succ(Succ(x78))), Pos(Succ(Succ(x79))), Integer(Pos(Zero)), Neg(Succ(Succ(x78))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x78))), Pos(Succ(Succ(x79)))), Pos(Zero)), Pos(Succ(Succ(x79))), new_primRemInt(Neg(Succ(Succ(x78))), Pos(Succ(Succ(x79)))))) *(new_quot1(x9, Neg(Succ(Succ(x82))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x82))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x82))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x82))), Neg(Succ(Zero))))) *(new_quot1(x9, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))))) *(new_quot1(x9, Neg(Succ(Succ(x89))), Neg(Succ(Succ(x90))), Integer(Pos(Zero)), Neg(Succ(Succ(x89))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x89))), Neg(Succ(Succ(x90)))), Pos(Zero)), Neg(Succ(Succ(x90))), new_primRemInt(Neg(Succ(Succ(x89))), Neg(Succ(Succ(x90)))))) 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. ---------------------------------------- (86) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (87) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Pos(x0), Neg(Succ(x1)))),new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Pos(x0), Neg(Succ(x1))))) (new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))),new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1))))) (new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))),new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero)))) (new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))),new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1))))) (new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))),new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero)))) (new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))),new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1))))) (new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))),new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero)))) (new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))),new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero)))) ---------------------------------------- (88) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Pos(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))) new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (89) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Pos(x0), Neg(Succ(x1)))) at position [3] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) ---------------------------------------- (90) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))) new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (91) 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. ---------------------------------------- (92) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))) new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_error -> error([]) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (93) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))) at position [3] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) ---------------------------------------- (94) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_error -> error([]) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (95) 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. ---------------------------------------- (96) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_error -> error([]) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (97) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))),new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero)))) ---------------------------------------- (98) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_error -> error([]) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (99) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (100) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_error -> error([]) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (101) 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. ---------------------------------------- (102) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_error -> error([]) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (103) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) at position [3] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) ---------------------------------------- (104) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_error -> error([]) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (105) 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. ---------------------------------------- (106) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (107) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))),new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero)))) ---------------------------------------- (108) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) 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_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (111) 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. ---------------------------------------- (112) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (113) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) at position [3] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) ---------------------------------------- (114) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (115) 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. ---------------------------------------- (116) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (117) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))),new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero)))) ---------------------------------------- (118) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (119) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (120) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (121) 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. ---------------------------------------- (122) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (123) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))),new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero)))) ---------------------------------------- (124) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (125) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (126) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (127) 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. ---------------------------------------- (128) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (129) 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(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_error new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) ---------------------------------------- (130) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (131) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0))))) (new_quot1(y0, Pos(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(new_primModNatS1(Zero, x0))),new_quot1(y0, Pos(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(new_primModNatS1(Zero, x0)))) (new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) (new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))),new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1))))) ---------------------------------------- (132) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(new_primModNatS1(Zero, x0))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (133) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (134) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (135) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0))))) ---------------------------------------- (136) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (137) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (138) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (139) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (140) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (141) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))),new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (142) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (143) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))),new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero)))) ---------------------------------------- (144) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (145) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (146) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (147) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (148) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (149) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (150) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (151) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (152) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (153) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0))))) (new_quot1(y0, Pos(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(new_primModNatS1(Zero, x0))),new_quot1(y0, Pos(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(new_primModNatS1(Zero, x0)))) (new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) (new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))),new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1))))) ---------------------------------------- (154) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(new_primModNatS1(Zero, x0))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (155) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (156) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (157) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0))))) ---------------------------------------- (158) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (159) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (160) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (161) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (162) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (163) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))),new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (164) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (165) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))),new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero)))) ---------------------------------------- (166) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (167) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (168) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (169) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (170) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (171) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (172) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (173) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (174) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (175) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0))))) (new_quot1(y0, Neg(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(new_primModNatS1(Zero, x0))),new_quot1(y0, Neg(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(new_primModNatS1(Zero, x0)))) (new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) (new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))),new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1))))) ---------------------------------------- (176) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(new_primModNatS1(Zero, x0))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) 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_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (179) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0))))) ---------------------------------------- (180) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (181) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (182) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (183) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (184) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (185) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))),new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (186) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (187) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))),new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero)))) ---------------------------------------- (188) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (189) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (190) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (191) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (192) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (193) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (194) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (195) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (196) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (197) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0))))) (new_quot1(y0, Neg(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(new_primModNatS1(Zero, x0))),new_quot1(y0, Neg(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(new_primModNatS1(Zero, x0)))) (new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) (new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))),new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1))))) ---------------------------------------- (198) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(new_primModNatS1(Zero, x0))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (199) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (200) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (201) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0))))) ---------------------------------------- (202) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (203) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (204) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (205) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (206) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (207) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))),new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (208) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (209) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))),new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero)))) ---------------------------------------- (210) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (211) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (212) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (213) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (214) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (215) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (216) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (217) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (218) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (219) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3))))) (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (220) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (221) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (222) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (223) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) ---------------------------------------- (224) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (225) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (226) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (227) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (228) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (229) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (230) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (231) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (232) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (233) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (234) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (235) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (236) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (237) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (238) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (239) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero)))) ---------------------------------------- (240) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (241) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (242) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (243) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (244) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (245) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (246) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (247) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (248) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (249) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (250) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (251) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (252) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (253) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (254) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (255) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (256) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (257) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (258) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (259) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (260) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (261) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (262) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (263) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (264) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (265) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3))))) (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (266) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (267) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (268) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (269) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) ---------------------------------------- (270) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (271) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (272) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (273) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (274) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (275) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (276) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (277) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (278) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (279) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (280) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (281) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (282) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (283) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (284) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (285) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero)))) ---------------------------------------- (286) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (287) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (288) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (289) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (290) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (291) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (292) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (293) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (294) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (295) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (296) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (297) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (298) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (299) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (300) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (301) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (302) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (303) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (304) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (305) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (306) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (307) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (308) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (309) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (310) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (311) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3))))) (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (312) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (313) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (314) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (315) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) ---------------------------------------- (316) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (317) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (318) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (319) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (320) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (321) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (322) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (323) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (324) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (325) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (326) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (327) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (328) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (329) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (330) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (331) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero)))) ---------------------------------------- (332) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (333) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (334) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (335) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (336) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (337) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (338) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (339) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (340) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (341) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (342) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (343) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (344) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (345) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (346) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (347) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (348) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (349) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (350) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (351) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (352) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (353) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (354) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (355) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (356) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (357) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3))))) (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (358) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (359) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (360) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (361) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) ---------------------------------------- (362) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (363) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (364) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (365) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (366) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (367) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (368) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (369) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (370) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (371) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (372) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (373) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (374) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (375) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (376) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (377) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero)))) ---------------------------------------- (378) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (379) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (380) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (381) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (382) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (383) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (384) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (385) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (386) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (387) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (388) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (389) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (390) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (391) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (392) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (393) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (394) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (395) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (396) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (397) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (398) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (399) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (400) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (401) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (402) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (403) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3))))) (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (404) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (405) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (406) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (407) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) ---------------------------------------- (408) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (409) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (410) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (411) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (412) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (413) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (414) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (415) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (416) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (417) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (418) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (419) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (420) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (421) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (422) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (423) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (424) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (425) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (426) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (427) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) ---------------------------------------- (428) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (429) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (430) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) 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_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (433) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (434) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (435) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (436) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (437) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (438) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (439) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (440) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (441) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero))))) (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero))))) ---------------------------------------- (442) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (443) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero))))) ---------------------------------------- (444) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (445) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero)))) ---------------------------------------- (446) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (447) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) ---------------------------------------- (448) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (449) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (450) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (451) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (452) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (453) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (454) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (455) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (456) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (457) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (458) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (459) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (460) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (461) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (462) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (463) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3))))) (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (464) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (465) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (466) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (467) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) ---------------------------------------- (468) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (469) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (470) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (471) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (472) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (473) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (474) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (475) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (476) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (477) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (478) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (479) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (480) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (481) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (482) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (483) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (484) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (485) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (486) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (487) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) ---------------------------------------- (488) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (489) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (490) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (491) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (492) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (493) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (494) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (495) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (496) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (497) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (498) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (499) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (500) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (501) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero))))) (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero))))) ---------------------------------------- (502) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (503) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero))))) ---------------------------------------- (504) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (505) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero)))) ---------------------------------------- (506) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (507) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) ---------------------------------------- (508) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (509) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (510) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (511) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (512) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (513) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (514) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (515) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (516) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) 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_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (519) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (520) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (521) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (522) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (523) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3))))) (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (524) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (525) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (526) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (527) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) ---------------------------------------- (528) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (529) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (530) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (531) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (532) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (533) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (534) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (535) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (536) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (537) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (538) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (539) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (540) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (541) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (542) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (543) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (544) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (545) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (546) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (547) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) ---------------------------------------- (548) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (549) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (550) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (551) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (552) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (553) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (554) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (555) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (556) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (557) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (558) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (559) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (560) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (561) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero))))) (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero))))) ---------------------------------------- (562) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (563) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero))))) ---------------------------------------- (564) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (565) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero)))) ---------------------------------------- (566) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (567) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) ---------------------------------------- (568) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (569) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (570) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (571) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (572) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (573) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (574) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (575) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (576) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (577) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (578) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (579) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (580) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (581) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (582) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (583) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3))))) (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (584) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (585) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (586) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (587) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) ---------------------------------------- (588) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (589) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (590) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (591) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (592) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (593) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (594) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (595) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (596) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (597) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (598) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (599) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (600) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (601) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (602) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (603) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (604) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (605) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (606) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (607) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) ---------------------------------------- (608) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (609) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (610) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (611) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (612) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (613) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (614) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (615) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (616) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (617) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (618) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (619) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (620) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (621) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero))))) (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero))))) ---------------------------------------- (622) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (623) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero))))) ---------------------------------------- (624) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (625) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero)))) ---------------------------------------- (626) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (627) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) ---------------------------------------- (628) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (629) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (630) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (631) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (632) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (633) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (634) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (635) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (636) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (637) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (638) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (639) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (640) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (641) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (642) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (643) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 1 POL(Integer(x_1)) = 0 POL(Neg(x_1)) = 1 POL(Pos(x_1)) = x_1 POL(Succ(x_1)) = 1 POL(True) = 0 POL(Zero) = 0 POL(new_primEqInt(x_1, x_2)) = x_1 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primMinusNatS2(x_1, x_2)) = 0 POL(new_primModNatS01(x_1, x_2)) = 1 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 1 POL(new_primModNatS1(x_1, x_2)) = x_2 POL(new_quot1(x_1, x_2, x_3, x_4, x_5)) = 1 POL(new_quot2(x_1, x_2, x_3, x_4)) = x_2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS1(Zero, vuz11600) -> Zero ---------------------------------------- (644) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (645) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 1 POL(Integer(x_1)) = x_1 POL(Neg(x_1)) = x_1 POL(Pos(x_1)) = 1 POL(Succ(x_1)) = 1 POL(True) = 0 POL(Zero) = 0 POL(new_primEqInt(x_1, x_2)) = x_1 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primMinusNatS2(x_1, x_2)) = 0 POL(new_primModNatS01(x_1, x_2)) = 1 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 1 POL(new_primModNatS1(x_1, x_2)) = x_2 POL(new_quot1(x_1, x_2, x_3, x_4, x_5)) = x_4 POL(new_quot2(x_1, x_2, x_3, x_4)) = x_2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Zero, vuz11600) -> Zero ---------------------------------------- (646) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (647) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) the following chains were created: *We consider the chain new_quot2(x3, False, x4, x5) -> new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4), new_quot1(x6, Pos(Succ(Zero)), Neg(Succ(Succ(x7))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(x6, False, Neg(Succ(Succ(x7))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4)=new_quot1(x6, Pos(Succ(Zero)), Neg(Succ(Succ(x7))), Integer(Pos(Zero)), Pos(Succ(Zero))) ==> new_quot2(x3, False, x4, x5)_>=_new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x3, False, Pos(Succ(Zero)), Neg(Succ(Succ(x7))))_>=_new_quot1(x3, Pos(Succ(Zero)), Neg(Succ(Succ(x7))), Integer(Pos(Zero)), Pos(Succ(Zero)))) *We consider the chain new_quot2(x8, False, x9, x10) -> new_quot1(x8, x9, x10, Integer(Pos(Zero)), x9), new_quot1(x11, Pos(Succ(Zero)), Pos(Succ(Succ(x12))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(x11, False, Pos(Succ(Succ(x12))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_quot1(x8, x9, x10, Integer(Pos(Zero)), x9)=new_quot1(x11, Pos(Succ(Zero)), Pos(Succ(Succ(x12))), Integer(Pos(Zero)), Pos(Succ(Zero))) ==> new_quot2(x8, False, x9, x10)_>=_new_quot1(x8, x9, x10, Integer(Pos(Zero)), x9)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x8, False, Pos(Succ(Zero)), Pos(Succ(Succ(x12))))_>=_new_quot1(x8, Pos(Succ(Zero)), Pos(Succ(Succ(x12))), Integer(Pos(Zero)), Pos(Succ(Zero)))) *We consider the chain new_quot2(x13, False, x14, x15) -> new_quot1(x13, x14, x15, Integer(Pos(Zero)), x14), new_quot1(x16, Neg(Succ(Zero)), Pos(Succ(Succ(x17))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(x16, False, Pos(Succ(Succ(x17))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_quot1(x13, x14, x15, Integer(Pos(Zero)), x14)=new_quot1(x16, Neg(Succ(Zero)), Pos(Succ(Succ(x17))), Integer(Pos(Zero)), Neg(Succ(Zero))) ==> new_quot2(x13, False, x14, x15)_>=_new_quot1(x13, x14, x15, Integer(Pos(Zero)), x14)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x13, False, Neg(Succ(Zero)), Pos(Succ(Succ(x17))))_>=_new_quot1(x13, Neg(Succ(Zero)), Pos(Succ(Succ(x17))), Integer(Pos(Zero)), Neg(Succ(Zero)))) *We consider the chain new_quot2(x18, False, x19, x20) -> new_quot1(x18, x19, x20, Integer(Pos(Zero)), x19), new_quot1(x21, Neg(Succ(Zero)), Neg(Succ(Succ(x22))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(x21, False, Neg(Succ(Succ(x22))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_quot1(x18, x19, x20, Integer(Pos(Zero)), x19)=new_quot1(x21, Neg(Succ(Zero)), Neg(Succ(Succ(x22))), Integer(Pos(Zero)), Neg(Succ(Zero))) ==> new_quot2(x18, False, x19, x20)_>=_new_quot1(x18, x19, x20, Integer(Pos(Zero)), x19)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x18, False, Neg(Succ(Zero)), Neg(Succ(Succ(x22))))_>=_new_quot1(x18, Neg(Succ(Zero)), Neg(Succ(Succ(x22))), Integer(Pos(Zero)), Neg(Succ(Zero)))) *We consider the chain new_quot2(x23, False, x24, x25) -> new_quot1(x23, x24, x25, Integer(Pos(Zero)), x24), new_quot1(x26, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(x26, False, Neg(Succ(Succ(Succ(x27)))), Pos(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_quot1(x23, x24, x25, Integer(Pos(Zero)), x24)=new_quot1(x26, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) ==> new_quot2(x23, False, x24, x25)_>=_new_quot1(x23, x24, x25, Integer(Pos(Zero)), x24)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x23, False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))))_>=_new_quot1(x23, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))) *We consider the chain new_quot2(x28, False, x29, x30) -> new_quot1(x28, x29, x30, Integer(Pos(Zero)), x29), new_quot1(x31, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(x31, False, Pos(Succ(Succ(Succ(x32)))), Pos(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_quot1(x28, x29, x30, Integer(Pos(Zero)), x29)=new_quot1(x31, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) ==> new_quot2(x28, False, x29, x30)_>=_new_quot1(x28, x29, x30, Integer(Pos(Zero)), x29)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x28, False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))))_>=_new_quot1(x28, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))) *We consider the chain new_quot2(x33, False, x34, x35) -> new_quot1(x33, x34, x35, Integer(Pos(Zero)), x34), new_quot1(x36, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(x36, False, Pos(Succ(Succ(Succ(x37)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_quot1(x33, x34, x35, Integer(Pos(Zero)), x34)=new_quot1(x36, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) ==> new_quot2(x33, False, x34, x35)_>=_new_quot1(x33, x34, x35, Integer(Pos(Zero)), x34)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x33, False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))))_>=_new_quot1(x33, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))) *We consider the chain new_quot2(x38, False, x39, x40) -> new_quot1(x38, x39, x40, Integer(Pos(Zero)), x39), new_quot1(x41, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(x41, False, Neg(Succ(Succ(Succ(x42)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_quot1(x38, x39, x40, Integer(Pos(Zero)), x39)=new_quot1(x41, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) ==> new_quot2(x38, False, x39, x40)_>=_new_quot1(x38, x39, x40, Integer(Pos(Zero)), x39)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x38, False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))))_>=_new_quot1(x38, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))) *We consider the chain new_quot2(x43, False, x44, x45) -> new_quot1(x43, x44, x45, Integer(Pos(Zero)), x44), new_quot1(x46, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x47)))))) -> new_quot2(x46, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x47)), Succ(Succ(x48)), x47, x48)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x48))))), Pos(new_primModNatS02(Succ(Succ(x47)), Succ(Succ(x48)), x47, x48))) which results in the following constraint: (1) (new_quot1(x43, x44, x45, Integer(Pos(Zero)), x44)=new_quot1(x46, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x47)))))) ==> new_quot2(x43, False, x44, x45)_>=_new_quot1(x43, x44, x45, Integer(Pos(Zero)), x44)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x43, False, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))))_>=_new_quot1(x43, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x47))))))) *We consider the chain new_quot2(x49, False, x50, x51) -> new_quot1(x49, x50, x51, Integer(Pos(Zero)), x50), new_quot1(x52, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x52, False, Neg(Succ(Succ(Succ(Succ(x53))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot1(x49, x50, x51, Integer(Pos(Zero)), x50)=new_quot1(x52, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) ==> new_quot2(x49, False, x50, x51)_>=_new_quot1(x49, x50, x51, Integer(Pos(Zero)), x50)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x49, False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))))_>=_new_quot1(x49, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot2(x54, False, x55, x56) -> new_quot1(x54, x55, x56, Integer(Pos(Zero)), x55), new_quot1(x57, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x58)))))) -> new_quot2(x57, new_primEqInt(Pos(new_primModNatS1(Succ(x58), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x58), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot1(x54, x55, x56, Integer(Pos(Zero)), x55)=new_quot1(x57, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x58)))))) ==> new_quot2(x54, False, x55, x56)_>=_new_quot1(x54, x55, x56, Integer(Pos(Zero)), x55)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x54, False, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x54, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x58))))))) *We consider the chain new_quot2(x59, False, x60, x61) -> new_quot1(x59, x60, x61, Integer(Pos(Zero)), x60), new_quot1(x62, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x63)))))) -> new_quot2(x62, new_primEqInt(Pos(new_primModNatS02(x63, Zero, x63, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x63, Zero, x63, Zero))) which results in the following constraint: (1) (new_quot1(x59, x60, x61, Integer(Pos(Zero)), x60)=new_quot1(x62, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x63)))))) ==> new_quot2(x59, False, x60, x61)_>=_new_quot1(x59, x60, x61, Integer(Pos(Zero)), x60)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x59, False, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x59, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x63))))))) *We consider the chain new_quot2(x64, False, x65, x66) -> new_quot1(x64, x65, x66, Integer(Pos(Zero)), x65), new_quot1(x67, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x67, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_quot1(x64, x65, x66, Integer(Pos(Zero)), x65)=new_quot1(x67, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) ==> new_quot2(x64, False, x65, x66)_>=_new_quot1(x64, x65, x66, Integer(Pos(Zero)), x65)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x64, False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x64, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot2(x68, False, x69, x70) -> new_quot1(x68, x69, x70, Integer(Pos(Zero)), x69), new_quot1(x71, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x72)))))) -> new_quot2(x71, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x72)), Succ(Succ(x73)), x72, x73)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x73))))), Pos(new_primModNatS02(Succ(Succ(x72)), Succ(Succ(x73)), x72, x73))) which results in the following constraint: (1) (new_quot1(x68, x69, x70, Integer(Pos(Zero)), x69)=new_quot1(x71, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x72)))))) ==> new_quot2(x68, False, x69, x70)_>=_new_quot1(x68, x69, x70, Integer(Pos(Zero)), x69)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x68, False, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))))_>=_new_quot1(x68, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x72))))))) *We consider the chain new_quot2(x74, False, x75, x76) -> new_quot1(x74, x75, x76, Integer(Pos(Zero)), x75), new_quot1(x77, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x77, False, Pos(Succ(Succ(Succ(Succ(x78))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot1(x74, x75, x76, Integer(Pos(Zero)), x75)=new_quot1(x77, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) ==> new_quot2(x74, False, x75, x76)_>=_new_quot1(x74, x75, x76, Integer(Pos(Zero)), x75)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x74, False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))))_>=_new_quot1(x74, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot2(x79, False, x80, x81) -> new_quot1(x79, x80, x81, Integer(Pos(Zero)), x80), new_quot1(x82, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x83)))))) -> new_quot2(x82, new_primEqInt(Pos(new_primModNatS1(Succ(x83), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x83), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot1(x79, x80, x81, Integer(Pos(Zero)), x80)=new_quot1(x82, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x83)))))) ==> new_quot2(x79, False, x80, x81)_>=_new_quot1(x79, x80, x81, Integer(Pos(Zero)), x80)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x79, False, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x79, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x83))))))) *We consider the chain new_quot2(x84, False, x85, x86) -> new_quot1(x84, x85, x86, Integer(Pos(Zero)), x85), new_quot1(x87, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x88)))))) -> new_quot2(x87, new_primEqInt(Pos(new_primModNatS02(x88, Zero, x88, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x88, Zero, x88, Zero))) which results in the following constraint: (1) (new_quot1(x84, x85, x86, Integer(Pos(Zero)), x85)=new_quot1(x87, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x88)))))) ==> new_quot2(x84, False, x85, x86)_>=_new_quot1(x84, x85, x86, Integer(Pos(Zero)), x85)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x84, False, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x84, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x88))))))) *We consider the chain new_quot2(x89, False, x90, x91) -> new_quot1(x89, x90, x91, Integer(Pos(Zero)), x90), new_quot1(x92, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x92, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_quot1(x89, x90, x91, Integer(Pos(Zero)), x90)=new_quot1(x92, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) ==> new_quot2(x89, False, x90, x91)_>=_new_quot1(x89, x90, x91, Integer(Pos(Zero)), x90)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x89, False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x89, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot2(x93, False, x94, x95) -> new_quot1(x93, x94, x95, Integer(Pos(Zero)), x94), new_quot1(x96, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x97)))))) -> new_quot2(x96, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x97)), Succ(Succ(x98)), x97, x98)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x98))))), Neg(new_primModNatS02(Succ(Succ(x97)), Succ(Succ(x98)), x97, x98))) which results in the following constraint: (1) (new_quot1(x93, x94, x95, Integer(Pos(Zero)), x94)=new_quot1(x96, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x97)))))) ==> new_quot2(x93, False, x94, x95)_>=_new_quot1(x93, x94, x95, Integer(Pos(Zero)), x94)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x93, False, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))))_>=_new_quot1(x93, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x97))))))) *We consider the chain new_quot2(x99, False, x100, x101) -> new_quot1(x99, x100, x101, Integer(Pos(Zero)), x100), new_quot1(x102, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x102, False, Pos(Succ(Succ(Succ(Succ(x103))))), Neg(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot1(x99, x100, x101, Integer(Pos(Zero)), x100)=new_quot1(x102, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) ==> new_quot2(x99, False, x100, x101)_>=_new_quot1(x99, x100, x101, Integer(Pos(Zero)), x100)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x99, False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))))_>=_new_quot1(x99, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot2(x104, False, x105, x106) -> new_quot1(x104, x105, x106, Integer(Pos(Zero)), x105), new_quot1(x107, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x108)))))) -> new_quot2(x107, new_primEqInt(Neg(new_primModNatS1(Succ(x108), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x108), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot1(x104, x105, x106, Integer(Pos(Zero)), x105)=new_quot1(x107, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x108)))))) ==> new_quot2(x104, False, x105, x106)_>=_new_quot1(x104, x105, x106, Integer(Pos(Zero)), x105)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x104, False, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x104, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x108))))))) *We consider the chain new_quot2(x109, False, x110, x111) -> new_quot1(x109, x110, x111, Integer(Pos(Zero)), x110), new_quot1(x112, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x113)))))) -> new_quot2(x112, new_primEqInt(Neg(new_primModNatS02(x113, Zero, x113, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x113, Zero, x113, Zero))) which results in the following constraint: (1) (new_quot1(x109, x110, x111, Integer(Pos(Zero)), x110)=new_quot1(x112, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x113)))))) ==> new_quot2(x109, False, x110, x111)_>=_new_quot1(x109, x110, x111, Integer(Pos(Zero)), x110)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x109, False, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x109, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x113))))))) *We consider the chain new_quot2(x114, False, x115, x116) -> new_quot1(x114, x115, x116, Integer(Pos(Zero)), x115), new_quot1(x117, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x117, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_quot1(x114, x115, x116, Integer(Pos(Zero)), x115)=new_quot1(x117, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) ==> new_quot2(x114, False, x115, x116)_>=_new_quot1(x114, x115, x116, Integer(Pos(Zero)), x115)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x114, False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x114, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot2(x118, False, x119, x120) -> new_quot1(x118, x119, x120, Integer(Pos(Zero)), x119), new_quot1(x121, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x122)))))) -> new_quot2(x121, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x122)), Succ(Succ(x123)), x122, x123)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x123))))), Neg(new_primModNatS02(Succ(Succ(x122)), Succ(Succ(x123)), x122, x123))) which results in the following constraint: (1) (new_quot1(x118, x119, x120, Integer(Pos(Zero)), x119)=new_quot1(x121, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x122)))))) ==> new_quot2(x118, False, x119, x120)_>=_new_quot1(x118, x119, x120, Integer(Pos(Zero)), x119)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x118, False, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))))_>=_new_quot1(x118, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x122))))))) *We consider the chain new_quot2(x124, False, x125, x126) -> new_quot1(x124, x125, x126, Integer(Pos(Zero)), x125), new_quot1(x127, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x127, False, Neg(Succ(Succ(Succ(Succ(x128))))), Neg(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot1(x124, x125, x126, Integer(Pos(Zero)), x125)=new_quot1(x127, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) ==> new_quot2(x124, False, x125, x126)_>=_new_quot1(x124, x125, x126, Integer(Pos(Zero)), x125)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x124, False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))))_>=_new_quot1(x124, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot2(x129, False, x130, x131) -> new_quot1(x129, x130, x131, Integer(Pos(Zero)), x130), new_quot1(x132, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x133)))))) -> new_quot2(x132, new_primEqInt(Neg(new_primModNatS1(Succ(x133), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x133), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot1(x129, x130, x131, Integer(Pos(Zero)), x130)=new_quot1(x132, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x133)))))) ==> new_quot2(x129, False, x130, x131)_>=_new_quot1(x129, x130, x131, Integer(Pos(Zero)), x130)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x129, False, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x129, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x133))))))) *We consider the chain new_quot2(x134, False, x135, x136) -> new_quot1(x134, x135, x136, Integer(Pos(Zero)), x135), new_quot1(x137, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x138)))))) -> new_quot2(x137, new_primEqInt(Neg(new_primModNatS02(x138, Zero, x138, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x138, Zero, x138, Zero))) which results in the following constraint: (1) (new_quot1(x134, x135, x136, Integer(Pos(Zero)), x135)=new_quot1(x137, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x138)))))) ==> new_quot2(x134, False, x135, x136)_>=_new_quot1(x134, x135, x136, Integer(Pos(Zero)), x135)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x134, False, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x134, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x138))))))) *We consider the chain new_quot2(x139, False, x140, x141) -> new_quot1(x139, x140, x141, Integer(Pos(Zero)), x140), new_quot1(x142, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x142, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_quot1(x139, x140, x141, Integer(Pos(Zero)), x140)=new_quot1(x142, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) ==> new_quot2(x139, False, x140, x141)_>=_new_quot1(x139, x140, x141, Integer(Pos(Zero)), x140)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x139, False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x139, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) For Pair new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_quot1(x143, Pos(Succ(Zero)), Neg(Succ(Succ(x144))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero))), new_quot2(x145, False, x146, x147) -> new_quot1(x145, x146, x147, Integer(Pos(Zero)), x146) which results in the following constraint: (1) (new_quot2(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero)))=new_quot2(x145, False, x146, x147) ==> new_quot1(x143, Pos(Succ(Zero)), Neg(Succ(Succ(x144))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x143, Pos(Succ(Zero)), Neg(Succ(Succ(x144))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero)))) For Pair new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_quot1(x204, Pos(Succ(Zero)), Pos(Succ(Succ(x205))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero))), new_quot2(x206, False, x207, x208) -> new_quot1(x206, x207, x208, Integer(Pos(Zero)), x207) which results in the following constraint: (1) (new_quot2(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero)))=new_quot2(x206, False, x207, x208) ==> new_quot1(x204, Pos(Succ(Zero)), Pos(Succ(Succ(x205))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x204, Pos(Succ(Zero)), Pos(Succ(Succ(x205))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero)))) For Pair new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_quot1(x265, Neg(Succ(Zero)), Pos(Succ(Succ(x266))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero))), new_quot2(x267, False, x268, x269) -> new_quot1(x267, x268, x269, Integer(Pos(Zero)), x268) which results in the following constraint: (1) (new_quot2(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero)))=new_quot2(x267, False, x268, x269) ==> new_quot1(x265, Neg(Succ(Zero)), Pos(Succ(Succ(x266))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x265, Neg(Succ(Zero)), Pos(Succ(Succ(x266))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero)))) For Pair new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_quot1(x326, Neg(Succ(Zero)), Neg(Succ(Succ(x327))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero))), new_quot2(x328, False, x329, x330) -> new_quot1(x328, x329, x330, Integer(Pos(Zero)), x329) which results in the following constraint: (1) (new_quot2(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero)))=new_quot2(x328, False, x329, x330) ==> new_quot1(x326, Neg(Succ(Zero)), Neg(Succ(Succ(x327))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x326, Neg(Succ(Zero)), Neg(Succ(Succ(x327))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero)))) For Pair new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_quot1(x387, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x388)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero)))), new_quot2(x389, False, x390, x391) -> new_quot1(x389, x390, x391, Integer(Pos(Zero)), x390) which results in the following constraint: (1) (new_quot2(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero))))=new_quot2(x389, False, x390, x391) ==> new_quot1(x387, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x388)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot2(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x387, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x388)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot2(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero))))) For Pair new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_quot1(x448, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x449)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero)))), new_quot2(x450, False, x451, x452) -> new_quot1(x450, x451, x452, Integer(Pos(Zero)), x451) which results in the following constraint: (1) (new_quot2(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero))))=new_quot2(x450, False, x451, x452) ==> new_quot1(x448, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x449)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot2(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x448, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x449)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot2(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero))))) For Pair new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_quot1(x509, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x510)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero)))), new_quot2(x511, False, x512, x513) -> new_quot1(x511, x512, x513, Integer(Pos(Zero)), x512) which results in the following constraint: (1) (new_quot2(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero))))=new_quot2(x511, False, x512, x513) ==> new_quot1(x509, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x510)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot2(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x509, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x510)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot2(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero))))) For Pair new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_quot1(x570, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x571)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero)))), new_quot2(x572, False, x573, x574) -> new_quot1(x572, x573, x574, Integer(Pos(Zero)), x573) which results in the following constraint: (1) (new_quot2(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero))))=new_quot2(x572, False, x573, x574) ==> new_quot1(x570, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x571)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot2(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x570, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x571)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot2(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero))))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_quot1(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632)))))) -> new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633))), new_quot2(x634, False, x635, x636) -> new_quot1(x634, x635, x636, Integer(Pos(Zero)), x635) which results in the following constraint: (1) (new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))=new_quot2(x634, False, x635, x636) ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633))=x1851 & Pos(Zero)=x1852 & new_primEqInt(x1851, x1852)=False ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x1851, x1852)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633))=Neg(Succ(x1854)) & Pos(Zero)=Pos(x1853) ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) (4) (False=False & Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633))=Pos(Succ(x1855)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: (5) (Succ(Succ(x632))=x1856 & Succ(Succ(x633))=x1857 & new_primModNatS02(x1856, x1857, x632, x633)=Succ(x1855) ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1856, x1857, x632, x633)=Succ(x1855) which results in the following new constraints: (6) (new_primModNatS01(x1860, x1859)=Succ(x1855) & Succ(Succ(Succ(x1858)))=x1860 & Succ(Succ(Zero))=x1859 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)))) (7) (new_primModNatS02(x1864, x1863, x1862, x1861)=Succ(x1855) & Succ(Succ(Succ(x1862)))=x1864 & Succ(Succ(Succ(x1861)))=x1863 & (\/x1865,x1866:new_primModNatS02(x1864, x1863, x1862, x1861)=Succ(x1865) & Succ(Succ(x1862))=x1864 & Succ(Succ(x1861))=x1863 ==> new_quot1(x1866, Pos(Succ(Succ(Succ(Succ(x1862))))), Neg(Succ(Succ(Succ(Succ(x1861))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1862))))))_>=_new_quot2(x1866, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x1862)), Succ(Succ(x1861)), x1862, x1861)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1861))))), Pos(new_primModNatS02(Succ(Succ(x1862)), Succ(Succ(x1861)), x1862, x1861)))) ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1862)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1861)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1862)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1862))), Succ(Succ(Succ(x1861))), Succ(x1862), Succ(x1861))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1861)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1862))), Succ(Succ(Succ(x1861))), Succ(x1862), Succ(x1861))))) (8) (new_primModNatS01(x1868, x1867)=Succ(x1855) & Succ(Succ(Zero))=x1868 & Succ(Succ(Zero))=x1867 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (9) (Succ(Succ(x1871))=Succ(x1855) & Succ(Succ(Zero))=x1871 & Succ(Succ(Succ(x1869)))=x1870 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1860, x1859)=Succ(x1855) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS2(Succ(x1873), Succ(x1872)), Succ(x1872))=Succ(x1855) & Succ(Succ(Succ(x1858)))=x1873 & Succ(Succ(Zero))=x1872 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS02(x1864, x1863, x1862, x1861)=Succ(x1855) & Succ(Succ(Succ(x1862)))=x1864 & Succ(Succ(Succ(x1861)))=x1863 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1862)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1861)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1862)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1862))), Succ(Succ(Succ(x1861))), Succ(x1862), Succ(x1861))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1861)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1862))), Succ(Succ(Succ(x1861))), Succ(x1862), Succ(x1861))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1868, x1867)=Succ(x1855) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS2(Succ(x1893), Succ(x1892)), Succ(x1892))=Succ(x1855) & Succ(Succ(Zero))=x1893 & Succ(Succ(Zero))=x1892 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1864, x1863, x1862, x1861)=Succ(x1855) which results in the following new constraints: (15) (new_primModNatS01(x1880, x1879)=Succ(x1855) & Succ(Succ(Succ(Succ(x1878))))=x1880 & Succ(Succ(Succ(Zero)))=x1879 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1878))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1878))))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1878)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1878)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1878)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1878)), Succ(Zero))))) (16) (new_primModNatS02(x1884, x1883, x1882, x1881)=Succ(x1855) & Succ(Succ(Succ(Succ(x1882))))=x1884 & Succ(Succ(Succ(Succ(x1881))))=x1883 & (\/x1885,x1886:new_primModNatS02(x1884, x1883, x1882, x1881)=Succ(x1885) & Succ(Succ(Succ(x1882)))=x1884 & Succ(Succ(Succ(x1881)))=x1883 ==> new_quot1(x1886, Pos(Succ(Succ(Succ(Succ(Succ(x1882)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1881)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1882)))))))_>=_new_quot2(x1886, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1882))), Succ(Succ(Succ(x1881))), Succ(x1882), Succ(x1881))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1881)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1882))), Succ(Succ(Succ(x1881))), Succ(x1882), Succ(x1881))))) ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1882))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1882))))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1882)))), Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(x1882)), Succ(Succ(x1881)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1882)))), Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(x1882)), Succ(Succ(x1881)))))) (17) (new_primModNatS01(x1888, x1887)=Succ(x1855) & Succ(Succ(Succ(Zero)))=x1888 & Succ(Succ(Succ(Zero)))=x1887 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (18) (Succ(Succ(x1891))=Succ(x1855) & Succ(Succ(Succ(Zero)))=x1891 & Succ(Succ(Succ(Succ(x1889))))=x1890 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1878))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1878))))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1878)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1878)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1878)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1878)), Succ(Zero))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1882))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1882))))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1882)))), Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(x1882)), Succ(Succ(x1881)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1882)))), Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(x1882)), Succ(Succ(x1881)))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot1(x721, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x722))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero))))), new_quot2(x723, False, x724, x725) -> new_quot1(x723, x724, x725, Integer(Pos(Zero)), x724) which results in the following constraint: (1) (new_quot2(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero)))))=new_quot2(x723, False, x724, x725) ==> new_quot1(x721, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x722))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x721, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x722))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero)))))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783)))))) -> new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero))))), new_quot2(x784, False, x785, x786) -> new_quot1(x784, x785, x786, Integer(Pos(Zero)), x785) which results in the following constraint: (1) (new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))=new_quot2(x784, False, x785, x786) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero))))=x1898 & Pos(Zero)=x1899 & new_primEqInt(x1898, x1899)=False ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x1898, x1899)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero))))=Neg(Succ(x1901)) & Pos(Zero)=Pos(x1900) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) (4) (False=False & Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero))))=Pos(Succ(x1902)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: (5) (Succ(x783)=x1903 & Succ(Succ(Zero))=x1904 & new_primModNatS1(x1903, x1904)=Succ(x1902) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x1903, x1904)=Succ(x1902) which results in the following new constraints: (6) (Succ(Zero)=Succ(x1902) & Succ(x783)=Succ(Zero) & Succ(Succ(Zero))=Succ(x1905) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) (7) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x1902) & Succ(x783)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) (8) (new_primModNatS1(new_primMinusNatS0(x1907), Zero)=Succ(x1902) & Succ(x783)=Succ(Succ(x1907)) & Succ(Succ(Zero))=Zero ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) (9) (new_primModNatS02(x1909, x1908, x1909, x1908)=Succ(x1902) & Succ(x783)=Succ(Succ(x1909)) & Succ(Succ(Zero))=Succ(x1908) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) We solved constraint (7) using rules (I), (II).We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (x1909=x1910 & x1908=x1911 & new_primModNatS02(x1909, x1908, x1910, x1911)=Succ(x1902) & Succ(Zero)=x1908 ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1909)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1909)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1909)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1909)), Succ(Succ(Zero)))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1909, x1908, x1910, x1911)=Succ(x1902) which results in the following new constraints: (12) (new_primModNatS01(x1914, x1913)=Succ(x1902) & x1914=Succ(x1912) & x1913=Zero & Succ(Zero)=x1913 ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1914)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1914)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1914)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1914)), Succ(Succ(Zero)))))) (13) (new_primModNatS02(x1918, x1917, x1916, x1915)=Succ(x1902) & x1918=Succ(x1916) & x1917=Succ(x1915) & Succ(Zero)=x1917 & (\/x1919,x1920:new_primModNatS02(x1918, x1917, x1916, x1915)=Succ(x1919) & x1918=x1916 & x1917=x1915 & Succ(Zero)=x1917 ==> new_quot1(x1920, Pos(Succ(Succ(Succ(Succ(Succ(x1918)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1918)))))))_>=_new_quot2(x1920, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1918)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1918)), Succ(Succ(Zero)))))) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1918)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1918)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1918)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1918)), Succ(Succ(Zero)))))) (14) (new_primModNatS01(x1922, x1921)=Succ(x1902) & x1922=Zero & x1921=Zero & Succ(Zero)=x1921 ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1922)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1922)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1922)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1922)), Succ(Succ(Zero)))))) (15) (Succ(Succ(x1925))=Succ(x1902) & x1925=Zero & x1924=Succ(x1923) & Succ(Zero)=x1924 ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1925)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1925)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1925)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1925)), Succ(Succ(Zero)))))) We solved constraint (12) using rules (I), (II), (III).We simplified constraint (13) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (16) (new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1916))))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1916))))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x1916))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x1916))), Succ(Succ(Zero)))))) We solved constraint (14) using rules (I), (II), (III).We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (17) (new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844)))))) -> new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero))), new_quot2(x845, False, x846, x847) -> new_quot1(x845, x846, x847, Integer(Pos(Zero)), x846) which results in the following constraint: (1) (new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero)))=new_quot2(x845, False, x846, x847) ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS02(x844, Zero, x844, Zero))=x1928 & Pos(Zero)=x1929 & new_primEqInt(x1928, x1929)=False ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x1928, x1929)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS02(x844, Zero, x844, Zero))=Neg(Succ(x1931)) & Pos(Zero)=Pos(x1930) ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero)))) (4) (False=False & Pos(new_primModNatS02(x844, Zero, x844, Zero))=Pos(Succ(x1932)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero)))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: (5) (Zero=x1933 & x844=x1934 & Zero=x1935 & new_primModNatS02(x844, x1933, x1934, x1935)=Succ(x1932) ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero)))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x844, x1933, x1934, x1935)=Succ(x1932) which results in the following new constraints: (6) (new_primModNatS01(x1938, x1937)=Succ(x1932) & Zero=x1937 & x1938=Succ(x1936) & Zero=Zero ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x1938))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1938))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x1938, Zero, x1938, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x1938, Zero, x1938, Zero)))) (7) (new_primModNatS02(x1942, x1941, x1940, x1939)=Succ(x1932) & Zero=x1941 & x1942=Succ(x1940) & Zero=Succ(x1939) & (\/x1943,x1944:new_primModNatS02(x1942, x1941, x1940, x1939)=Succ(x1943) & Zero=x1941 & x1942=x1940 & Zero=x1939 ==> new_quot1(x1944, Pos(Succ(Succ(Succ(Succ(x1942))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1942))))))_>=_new_quot2(x1944, new_primEqInt(Pos(new_primModNatS02(x1942, Zero, x1942, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x1942, Zero, x1942, Zero)))) ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x1942))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1942))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x1942, Zero, x1942, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x1942, Zero, x1942, Zero)))) (8) (new_primModNatS01(x1946, x1945)=Succ(x1932) & Zero=x1945 & x1946=Zero & Zero=Zero ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x1946))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1946))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x1946, Zero, x1946, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x1946, Zero, x1946, Zero)))) (9) (Succ(Succ(x1949))=Succ(x1932) & Zero=x1948 & x1949=Zero & Zero=Succ(x1947) ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x1949))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1949))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x1949, Zero, x1949, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x1949, Zero, x1949, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (10) (Succ(x1936)=x1950 & new_primModNatS01(x1950, x1937)=Succ(x1932) & Zero=x1937 ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)))) We solved constraint (7) using rules (I), (II).We simplified constraint (8) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (Zero=x1957 & new_primModNatS01(x1957, x1945)=Succ(x1932) & Zero=x1945 ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) We solved constraint (9) using rules (I), (II).We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1950, x1937)=Succ(x1932) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS2(Succ(x1952), Succ(x1951)), Succ(x1951))=Succ(x1932) & Succ(x1936)=x1952 & Zero=x1951 ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1957, x1945)=Succ(x1932) which results in the following new constraint: (14) (new_primModNatS1(new_primMinusNatS2(Succ(x1959), Succ(x1958)), Succ(x1958))=Succ(x1932) & Zero=x1959 & Zero=x1958 ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) We simplified constraint (14) using rules (III), (IV), (VII) which results in the following new constraint: (15) (new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_quot1(x904, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))), new_quot2(x905, False, x906, x907) -> new_quot1(x905, x906, x907, Integer(Pos(Zero)), x906) which results in the following constraint: (1) (new_quot2(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))=new_quot2(x905, False, x906, x907) ==> new_quot1(x904, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x904, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_quot1(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937)))))) -> new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938))), new_quot2(x939, False, x940, x941) -> new_quot1(x939, x940, x941, Integer(Pos(Zero)), x940) which results in the following constraint: (1) (new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))=new_quot2(x939, False, x940, x941) ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938))=x1964 & Pos(Zero)=x1965 & new_primEqInt(x1964, x1965)=False ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x1964, x1965)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938))=Neg(Succ(x1967)) & Pos(Zero)=Pos(x1966) ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) (4) (False=False & Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938))=Pos(Succ(x1968)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: (5) (Succ(Succ(x937))=x1969 & Succ(Succ(x938))=x1970 & new_primModNatS02(x1969, x1970, x937, x938)=Succ(x1968) ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1969, x1970, x937, x938)=Succ(x1968) which results in the following new constraints: (6) (new_primModNatS01(x1973, x1972)=Succ(x1968) & Succ(Succ(Succ(x1971)))=x1973 & Succ(Succ(Zero))=x1972 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)))) (7) (new_primModNatS02(x1977, x1976, x1975, x1974)=Succ(x1968) & Succ(Succ(Succ(x1975)))=x1977 & Succ(Succ(Succ(x1974)))=x1976 & (\/x1978,x1979:new_primModNatS02(x1977, x1976, x1975, x1974)=Succ(x1978) & Succ(Succ(x1975))=x1977 & Succ(Succ(x1974))=x1976 ==> new_quot1(x1979, Pos(Succ(Succ(Succ(Succ(x1975))))), Pos(Succ(Succ(Succ(Succ(x1974))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1975))))))_>=_new_quot2(x1979, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x1975)), Succ(Succ(x1974)), x1975, x1974)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1974))))), Pos(new_primModNatS02(Succ(Succ(x1975)), Succ(Succ(x1974)), x1975, x1974)))) ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1975)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1974)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1975)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1975))), Succ(Succ(Succ(x1974))), Succ(x1975), Succ(x1974))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1974)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1975))), Succ(Succ(Succ(x1974))), Succ(x1975), Succ(x1974))))) (8) (new_primModNatS01(x1981, x1980)=Succ(x1968) & Succ(Succ(Zero))=x1981 & Succ(Succ(Zero))=x1980 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (9) (Succ(Succ(x1984))=Succ(x1968) & Succ(Succ(Zero))=x1984 & Succ(Succ(Succ(x1982)))=x1983 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1973, x1972)=Succ(x1968) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS2(Succ(x1986), Succ(x1985)), Succ(x1985))=Succ(x1968) & Succ(Succ(Succ(x1971)))=x1986 & Succ(Succ(Zero))=x1985 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS02(x1977, x1976, x1975, x1974)=Succ(x1968) & Succ(Succ(Succ(x1975)))=x1977 & Succ(Succ(Succ(x1974)))=x1976 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1975)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1974)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1975)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1975))), Succ(Succ(Succ(x1974))), Succ(x1975), Succ(x1974))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1974)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1975))), Succ(Succ(Succ(x1974))), Succ(x1975), Succ(x1974))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1981, x1980)=Succ(x1968) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS2(Succ(x2006), Succ(x2005)), Succ(x2005))=Succ(x1968) & Succ(Succ(Zero))=x2006 & Succ(Succ(Zero))=x2005 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1977, x1976, x1975, x1974)=Succ(x1968) which results in the following new constraints: (15) (new_primModNatS01(x1993, x1992)=Succ(x1968) & Succ(Succ(Succ(Succ(x1991))))=x1993 & Succ(Succ(Succ(Zero)))=x1992 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1991))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1991))))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1991)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1991)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1991)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1991)), Succ(Zero))))) (16) (new_primModNatS02(x1997, x1996, x1995, x1994)=Succ(x1968) & Succ(Succ(Succ(Succ(x1995))))=x1997 & Succ(Succ(Succ(Succ(x1994))))=x1996 & (\/x1998,x1999:new_primModNatS02(x1997, x1996, x1995, x1994)=Succ(x1998) & Succ(Succ(Succ(x1995)))=x1997 & Succ(Succ(Succ(x1994)))=x1996 ==> new_quot1(x1999, Pos(Succ(Succ(Succ(Succ(Succ(x1995)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1994)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1995)))))))_>=_new_quot2(x1999, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1995))), Succ(Succ(Succ(x1994))), Succ(x1995), Succ(x1994))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1994)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1995))), Succ(Succ(Succ(x1994))), Succ(x1995), Succ(x1994))))) ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1995))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1995))))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1995)))), Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(x1995)), Succ(Succ(x1994)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1995)))), Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(x1995)), Succ(Succ(x1994)))))) (17) (new_primModNatS01(x2001, x2000)=Succ(x1968) & Succ(Succ(Succ(Zero)))=x2001 & Succ(Succ(Succ(Zero)))=x2000 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (18) (Succ(Succ(x2004))=Succ(x1968) & Succ(Succ(Succ(Zero)))=x2004 & Succ(Succ(Succ(Succ(x2002))))=x2003 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1991))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1991))))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1991)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1991)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1991)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1991)), Succ(Zero))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1995))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1995))))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1995)))), Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(x1995)), Succ(Succ(x1994)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1995)))), Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(x1995)), Succ(Succ(x1994)))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot1(x1026, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1027))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero))))), new_quot2(x1028, False, x1029, x1030) -> new_quot1(x1028, x1029, x1030, Integer(Pos(Zero)), x1029) which results in the following constraint: (1) (new_quot2(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero)))))=new_quot2(x1028, False, x1029, x1030) ==> new_quot1(x1026, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1027))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x1026, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1027))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero)))))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088)))))) -> new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero))))), new_quot2(x1089, False, x1090, x1091) -> new_quot1(x1089, x1090, x1091, Integer(Pos(Zero)), x1090) which results in the following constraint: (1) (new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))=new_quot2(x1089, False, x1090, x1091) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero))))=x2011 & Pos(Zero)=x2012 & new_primEqInt(x2011, x2012)=False ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2011, x2012)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero))))=Neg(Succ(x2014)) & Pos(Zero)=Pos(x2013) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) (4) (False=False & Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero))))=Pos(Succ(x2015)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: (5) (Succ(x1088)=x2016 & Succ(Succ(Zero))=x2017 & new_primModNatS1(x2016, x2017)=Succ(x2015) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x2016, x2017)=Succ(x2015) which results in the following new constraints: (6) (Succ(Zero)=Succ(x2015) & Succ(x1088)=Succ(Zero) & Succ(Succ(Zero))=Succ(x2018) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) (7) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x2015) & Succ(x1088)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) (8) (new_primModNatS1(new_primMinusNatS0(x2020), Zero)=Succ(x2015) & Succ(x1088)=Succ(Succ(x2020)) & Succ(Succ(Zero))=Zero ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) (9) (new_primModNatS02(x2022, x2021, x2022, x2021)=Succ(x2015) & Succ(x1088)=Succ(Succ(x2022)) & Succ(Succ(Zero))=Succ(x2021) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) We solved constraint (7) using rules (I), (II).We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (x2022=x2023 & x2021=x2024 & new_primModNatS02(x2022, x2021, x2023, x2024)=Succ(x2015) & Succ(Zero)=x2021 ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2022)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2022)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2022)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2022)), Succ(Succ(Zero)))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2022, x2021, x2023, x2024)=Succ(x2015) which results in the following new constraints: (12) (new_primModNatS01(x2027, x2026)=Succ(x2015) & x2027=Succ(x2025) & x2026=Zero & Succ(Zero)=x2026 ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2027)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2027)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2027)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2027)), Succ(Succ(Zero)))))) (13) (new_primModNatS02(x2031, x2030, x2029, x2028)=Succ(x2015) & x2031=Succ(x2029) & x2030=Succ(x2028) & Succ(Zero)=x2030 & (\/x2032,x2033:new_primModNatS02(x2031, x2030, x2029, x2028)=Succ(x2032) & x2031=x2029 & x2030=x2028 & Succ(Zero)=x2030 ==> new_quot1(x2033, Pos(Succ(Succ(Succ(Succ(Succ(x2031)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2031)))))))_>=_new_quot2(x2033, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2031)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2031)), Succ(Succ(Zero)))))) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2031)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2031)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2031)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2031)), Succ(Succ(Zero)))))) (14) (new_primModNatS01(x2035, x2034)=Succ(x2015) & x2035=Zero & x2034=Zero & Succ(Zero)=x2034 ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2035)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2035)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2035)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2035)), Succ(Succ(Zero)))))) (15) (Succ(Succ(x2038))=Succ(x2015) & x2038=Zero & x2037=Succ(x2036) & Succ(Zero)=x2037 ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2038)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2038)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2038)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2038)), Succ(Succ(Zero)))))) We solved constraint (12) using rules (I), (II), (III).We simplified constraint (13) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (16) (new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2029))))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2029))))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x2029))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x2029))), Succ(Succ(Zero)))))) We solved constraint (14) using rules (I), (II), (III).We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (17) (new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149)))))) -> new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero))), new_quot2(x1150, False, x1151, x1152) -> new_quot1(x1150, x1151, x1152, Integer(Pos(Zero)), x1151) which results in the following constraint: (1) (new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero)))=new_quot2(x1150, False, x1151, x1152) ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS02(x1149, Zero, x1149, Zero))=x2041 & Pos(Zero)=x2042 & new_primEqInt(x2041, x2042)=False ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2041, x2042)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS02(x1149, Zero, x1149, Zero))=Neg(Succ(x2044)) & Pos(Zero)=Pos(x2043) ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero)))) (4) (False=False & Pos(new_primModNatS02(x1149, Zero, x1149, Zero))=Pos(Succ(x2045)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero)))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: (5) (Zero=x2046 & x1149=x2047 & Zero=x2048 & new_primModNatS02(x1149, x2046, x2047, x2048)=Succ(x2045) ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero)))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1149, x2046, x2047, x2048)=Succ(x2045) which results in the following new constraints: (6) (new_primModNatS01(x2051, x2050)=Succ(x2045) & Zero=x2050 & x2051=Succ(x2049) & Zero=Zero ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x2051))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2051))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x2051, Zero, x2051, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x2051, Zero, x2051, Zero)))) (7) (new_primModNatS02(x2055, x2054, x2053, x2052)=Succ(x2045) & Zero=x2054 & x2055=Succ(x2053) & Zero=Succ(x2052) & (\/x2056,x2057:new_primModNatS02(x2055, x2054, x2053, x2052)=Succ(x2056) & Zero=x2054 & x2055=x2053 & Zero=x2052 ==> new_quot1(x2057, Pos(Succ(Succ(Succ(Succ(x2055))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2055))))))_>=_new_quot2(x2057, new_primEqInt(Pos(new_primModNatS02(x2055, Zero, x2055, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x2055, Zero, x2055, Zero)))) ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x2055))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2055))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x2055, Zero, x2055, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x2055, Zero, x2055, Zero)))) (8) (new_primModNatS01(x2059, x2058)=Succ(x2045) & Zero=x2058 & x2059=Zero & Zero=Zero ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x2059))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2059))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x2059, Zero, x2059, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x2059, Zero, x2059, Zero)))) (9) (Succ(Succ(x2062))=Succ(x2045) & Zero=x2061 & x2062=Zero & Zero=Succ(x2060) ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x2062))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2062))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x2062, Zero, x2062, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x2062, Zero, x2062, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (10) (Succ(x2049)=x2063 & new_primModNatS01(x2063, x2050)=Succ(x2045) & Zero=x2050 ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)))) We solved constraint (7) using rules (I), (II).We simplified constraint (8) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (Zero=x2070 & new_primModNatS01(x2070, x2058)=Succ(x2045) & Zero=x2058 ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) We solved constraint (9) using rules (I), (II).We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2063, x2050)=Succ(x2045) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS2(Succ(x2065), Succ(x2064)), Succ(x2064))=Succ(x2045) & Succ(x2049)=x2065 & Zero=x2064 ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2070, x2058)=Succ(x2045) which results in the following new constraint: (14) (new_primModNatS1(new_primMinusNatS2(Succ(x2072), Succ(x2071)), Succ(x2071))=Succ(x2045) & Zero=x2072 & Zero=x2071 ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) We simplified constraint (14) using rules (III), (IV), (VII) which results in the following new constraint: (15) (new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_quot1(x1209, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))), new_quot2(x1210, False, x1211, x1212) -> new_quot1(x1210, x1211, x1212, Integer(Pos(Zero)), x1211) which results in the following constraint: (1) (new_quot2(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))=new_quot2(x1210, False, x1211, x1212) ==> new_quot1(x1209, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x1209, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242)))))) -> new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243))), new_quot2(x1244, False, x1245, x1246) -> new_quot1(x1244, x1245, x1246, Integer(Pos(Zero)), x1245) which results in the following constraint: (1) (new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))=new_quot2(x1244, False, x1245, x1246) ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243))=x2077 & Pos(Zero)=x2078 & new_primEqInt(x2077, x2078)=False ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2077, x2078)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243))=Neg(Succ(x2080)) & Pos(Zero)=Pos(x2079) ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) (4) (False=False & Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243))=Pos(Succ(x2081)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Succ(Succ(x1242))=x2082 & Succ(Succ(x1243))=x2083 & new_primModNatS02(x2082, x2083, x1242, x1243)=Succ(x2080) ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2082, x2083, x1242, x1243)=Succ(x2080) which results in the following new constraints: (6) (new_primModNatS01(x2086, x2085)=Succ(x2080) & Succ(Succ(Succ(x2084)))=x2086 & Succ(Succ(Zero))=x2085 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)))) (7) (new_primModNatS02(x2090, x2089, x2088, x2087)=Succ(x2080) & Succ(Succ(Succ(x2088)))=x2090 & Succ(Succ(Succ(x2087)))=x2089 & (\/x2091,x2092:new_primModNatS02(x2090, x2089, x2088, x2087)=Succ(x2091) & Succ(Succ(x2088))=x2090 & Succ(Succ(x2087))=x2089 ==> new_quot1(x2092, Neg(Succ(Succ(Succ(Succ(x2088))))), Pos(Succ(Succ(Succ(Succ(x2087))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2088))))))_>=_new_quot2(x2092, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2088)), Succ(Succ(x2087)), x2088, x2087)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2087))))), Neg(new_primModNatS02(Succ(Succ(x2088)), Succ(Succ(x2087)), x2088, x2087)))) ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2088)))))), Pos(Succ(Succ(Succ(Succ(Succ(x2087)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2088)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2088))), Succ(Succ(Succ(x2087))), Succ(x2088), Succ(x2087))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2087)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2088))), Succ(Succ(Succ(x2087))), Succ(x2088), Succ(x2087))))) (8) (new_primModNatS01(x2094, x2093)=Succ(x2080) & Succ(Succ(Zero))=x2094 & Succ(Succ(Zero))=x2093 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (9) (Succ(Succ(x2097))=Succ(x2080) & Succ(Succ(Zero))=x2097 & Succ(Succ(Succ(x2095)))=x2096 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2086, x2085)=Succ(x2080) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS2(Succ(x2099), Succ(x2098)), Succ(x2098))=Succ(x2080) & Succ(Succ(Succ(x2084)))=x2099 & Succ(Succ(Zero))=x2098 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS02(x2090, x2089, x2088, x2087)=Succ(x2080) & Succ(Succ(Succ(x2088)))=x2090 & Succ(Succ(Succ(x2087)))=x2089 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2088)))))), Pos(Succ(Succ(Succ(Succ(Succ(x2087)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2088)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2088))), Succ(Succ(Succ(x2087))), Succ(x2088), Succ(x2087))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2087)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2088))), Succ(Succ(Succ(x2087))), Succ(x2088), Succ(x2087))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2094, x2093)=Succ(x2080) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS2(Succ(x2119), Succ(x2118)), Succ(x2118))=Succ(x2080) & Succ(Succ(Zero))=x2119 & Succ(Succ(Zero))=x2118 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2090, x2089, x2088, x2087)=Succ(x2080) which results in the following new constraints: (15) (new_primModNatS01(x2106, x2105)=Succ(x2080) & Succ(Succ(Succ(Succ(x2104))))=x2106 & Succ(Succ(Succ(Zero)))=x2105 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2104))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2104))))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2104)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2104)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2104)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2104)), Succ(Zero))))) (16) (new_primModNatS02(x2110, x2109, x2108, x2107)=Succ(x2080) & Succ(Succ(Succ(Succ(x2108))))=x2110 & Succ(Succ(Succ(Succ(x2107))))=x2109 & (\/x2111,x2112:new_primModNatS02(x2110, x2109, x2108, x2107)=Succ(x2111) & Succ(Succ(Succ(x2108)))=x2110 & Succ(Succ(Succ(x2107)))=x2109 ==> new_quot1(x2112, Neg(Succ(Succ(Succ(Succ(Succ(x2108)))))), Pos(Succ(Succ(Succ(Succ(Succ(x2107)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2108)))))))_>=_new_quot2(x2112, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2108))), Succ(Succ(Succ(x2107))), Succ(x2108), Succ(x2107))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2107)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2108))), Succ(Succ(Succ(x2107))), Succ(x2108), Succ(x2107))))) ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2108))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2108))))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2108)))), Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(x2108)), Succ(Succ(x2107)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2108)))), Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(x2108)), Succ(Succ(x2107)))))) (17) (new_primModNatS01(x2114, x2113)=Succ(x2080) & Succ(Succ(Succ(Zero)))=x2114 & Succ(Succ(Succ(Zero)))=x2113 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (18) (Succ(Succ(x2117))=Succ(x2080) & Succ(Succ(Succ(Zero)))=x2117 & Succ(Succ(Succ(Succ(x2115))))=x2116 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2104))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2104))))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2104)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2104)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2104)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2104)), Succ(Zero))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2108))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2108))))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2108)))), Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(x2108)), Succ(Succ(x2107)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2108)))), Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(x2108)), Succ(Succ(x2107)))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot1(x1331, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1332))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero))))), new_quot2(x1333, False, x1334, x1335) -> new_quot1(x1333, x1334, x1335, Integer(Pos(Zero)), x1334) which results in the following constraint: (1) (new_quot2(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero)))))=new_quot2(x1333, False, x1334, x1335) ==> new_quot1(x1331, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1332))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x1331, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1332))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero)))))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393)))))) -> new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero))))), new_quot2(x1394, False, x1395, x1396) -> new_quot1(x1394, x1395, x1396, Integer(Pos(Zero)), x1395) which results in the following constraint: (1) (new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))=new_quot2(x1394, False, x1395, x1396) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero))))=x2124 & Pos(Zero)=x2125 & new_primEqInt(x2124, x2125)=False ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2124, x2125)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero))))=Neg(Succ(x2127)) & Pos(Zero)=Pos(x2126) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) (4) (False=False & Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero))))=Pos(Succ(x2128)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Succ(x1393)=x2129 & Succ(Succ(Zero))=x2130 & new_primModNatS1(x2129, x2130)=Succ(x2127) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x2129, x2130)=Succ(x2127) which results in the following new constraints: (6) (Succ(Zero)=Succ(x2127) & Succ(x1393)=Succ(Zero) & Succ(Succ(Zero))=Succ(x2131) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) (7) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x2127) & Succ(x1393)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) (8) (new_primModNatS1(new_primMinusNatS0(x2133), Zero)=Succ(x2127) & Succ(x1393)=Succ(Succ(x2133)) & Succ(Succ(Zero))=Zero ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) (9) (new_primModNatS02(x2135, x2134, x2135, x2134)=Succ(x2127) & Succ(x1393)=Succ(Succ(x2135)) & Succ(Succ(Zero))=Succ(x2134) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) We solved constraint (7) using rules (I), (II).We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (x2135=x2136 & x2134=x2137 & new_primModNatS02(x2135, x2134, x2136, x2137)=Succ(x2127) & Succ(Zero)=x2134 ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2135)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2135)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2135)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2135)), Succ(Succ(Zero)))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2135, x2134, x2136, x2137)=Succ(x2127) which results in the following new constraints: (12) (new_primModNatS01(x2140, x2139)=Succ(x2127) & x2140=Succ(x2138) & x2139=Zero & Succ(Zero)=x2139 ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2140)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2140)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2140)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2140)), Succ(Succ(Zero)))))) (13) (new_primModNatS02(x2144, x2143, x2142, x2141)=Succ(x2127) & x2144=Succ(x2142) & x2143=Succ(x2141) & Succ(Zero)=x2143 & (\/x2145,x2146:new_primModNatS02(x2144, x2143, x2142, x2141)=Succ(x2145) & x2144=x2142 & x2143=x2141 & Succ(Zero)=x2143 ==> new_quot1(x2146, Neg(Succ(Succ(Succ(Succ(Succ(x2144)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2144)))))))_>=_new_quot2(x2146, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2144)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2144)), Succ(Succ(Zero)))))) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2144)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2144)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2144)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2144)), Succ(Succ(Zero)))))) (14) (new_primModNatS01(x2148, x2147)=Succ(x2127) & x2148=Zero & x2147=Zero & Succ(Zero)=x2147 ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2148)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2148)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2148)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2148)), Succ(Succ(Zero)))))) (15) (Succ(Succ(x2151))=Succ(x2127) & x2151=Zero & x2150=Succ(x2149) & Succ(Zero)=x2150 ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2151)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2151)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2151)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2151)), Succ(Succ(Zero)))))) We solved constraint (12) using rules (I), (II), (III).We simplified constraint (13) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (16) (new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2142))))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2142))))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x2142))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x2142))), Succ(Succ(Zero)))))) We solved constraint (14) using rules (I), (II), (III).We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (17) (new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454)))))) -> new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero))), new_quot2(x1455, False, x1456, x1457) -> new_quot1(x1455, x1456, x1457, Integer(Pos(Zero)), x1456) which results in the following constraint: (1) (new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero)))=new_quot2(x1455, False, x1456, x1457) ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS02(x1454, Zero, x1454, Zero))=x2154 & Pos(Zero)=x2155 & new_primEqInt(x2154, x2155)=False ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2154, x2155)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS02(x1454, Zero, x1454, Zero))=Neg(Succ(x2157)) & Pos(Zero)=Pos(x2156) ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero)))) (4) (False=False & Neg(new_primModNatS02(x1454, Zero, x1454, Zero))=Pos(Succ(x2158)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero)))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Zero=x2159 & x1454=x2160 & Zero=x2161 & new_primModNatS02(x1454, x2159, x2160, x2161)=Succ(x2157) ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero)))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1454, x2159, x2160, x2161)=Succ(x2157) which results in the following new constraints: (6) (new_primModNatS01(x2164, x2163)=Succ(x2157) & Zero=x2163 & x2164=Succ(x2162) & Zero=Zero ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x2164))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2164))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x2164, Zero, x2164, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x2164, Zero, x2164, Zero)))) (7) (new_primModNatS02(x2168, x2167, x2166, x2165)=Succ(x2157) & Zero=x2167 & x2168=Succ(x2166) & Zero=Succ(x2165) & (\/x2169,x2170:new_primModNatS02(x2168, x2167, x2166, x2165)=Succ(x2169) & Zero=x2167 & x2168=x2166 & Zero=x2165 ==> new_quot1(x2170, Neg(Succ(Succ(Succ(Succ(x2168))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2168))))))_>=_new_quot2(x2170, new_primEqInt(Neg(new_primModNatS02(x2168, Zero, x2168, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x2168, Zero, x2168, Zero)))) ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x2168))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2168))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x2168, Zero, x2168, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x2168, Zero, x2168, Zero)))) (8) (new_primModNatS01(x2172, x2171)=Succ(x2157) & Zero=x2171 & x2172=Zero & Zero=Zero ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x2172))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2172))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x2172, Zero, x2172, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x2172, Zero, x2172, Zero)))) (9) (Succ(Succ(x2175))=Succ(x2157) & Zero=x2174 & x2175=Zero & Zero=Succ(x2173) ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x2175))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2175))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x2175, Zero, x2175, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x2175, Zero, x2175, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (10) (Succ(x2162)=x2176 & new_primModNatS01(x2176, x2163)=Succ(x2157) & Zero=x2163 ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)))) We solved constraint (7) using rules (I), (II).We simplified constraint (8) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (Zero=x2183 & new_primModNatS01(x2183, x2171)=Succ(x2157) & Zero=x2171 ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) We solved constraint (9) using rules (I), (II).We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2176, x2163)=Succ(x2157) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS2(Succ(x2178), Succ(x2177)), Succ(x2177))=Succ(x2157) & Succ(x2162)=x2178 & Zero=x2177 ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2183, x2171)=Succ(x2157) which results in the following new constraint: (14) (new_primModNatS1(new_primMinusNatS2(Succ(x2185), Succ(x2184)), Succ(x2184))=Succ(x2157) & Zero=x2185 & Zero=x2184 ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) We simplified constraint (14) using rules (III), (IV), (VII) which results in the following new constraint: (15) (new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_quot1(x1514, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))), new_quot2(x1515, False, x1516, x1517) -> new_quot1(x1515, x1516, x1517, Integer(Pos(Zero)), x1516) which results in the following constraint: (1) (new_quot2(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))=new_quot2(x1515, False, x1516, x1517) ==> new_quot1(x1514, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x1514, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547)))))) -> new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548))), new_quot2(x1549, False, x1550, x1551) -> new_quot1(x1549, x1550, x1551, Integer(Pos(Zero)), x1550) which results in the following constraint: (1) (new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))=new_quot2(x1549, False, x1550, x1551) ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548))=x2190 & Pos(Zero)=x2191 & new_primEqInt(x2190, x2191)=False ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2190, x2191)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548))=Neg(Succ(x2193)) & Pos(Zero)=Pos(x2192) ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) (4) (False=False & Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548))=Pos(Succ(x2194)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Succ(Succ(x1547))=x2195 & Succ(Succ(x1548))=x2196 & new_primModNatS02(x2195, x2196, x1547, x1548)=Succ(x2193) ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2195, x2196, x1547, x1548)=Succ(x2193) which results in the following new constraints: (6) (new_primModNatS01(x2199, x2198)=Succ(x2193) & Succ(Succ(Succ(x2197)))=x2199 & Succ(Succ(Zero))=x2198 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)))) (7) (new_primModNatS02(x2203, x2202, x2201, x2200)=Succ(x2193) & Succ(Succ(Succ(x2201)))=x2203 & Succ(Succ(Succ(x2200)))=x2202 & (\/x2204,x2205:new_primModNatS02(x2203, x2202, x2201, x2200)=Succ(x2204) & Succ(Succ(x2201))=x2203 & Succ(Succ(x2200))=x2202 ==> new_quot1(x2205, Neg(Succ(Succ(Succ(Succ(x2201))))), Neg(Succ(Succ(Succ(Succ(x2200))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2201))))))_>=_new_quot2(x2205, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2201)), Succ(Succ(x2200)), x2201, x2200)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2200))))), Neg(new_primModNatS02(Succ(Succ(x2201)), Succ(Succ(x2200)), x2201, x2200)))) ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2201)))))), Neg(Succ(Succ(Succ(Succ(Succ(x2200)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2201)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2201))), Succ(Succ(Succ(x2200))), Succ(x2201), Succ(x2200))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2200)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2201))), Succ(Succ(Succ(x2200))), Succ(x2201), Succ(x2200))))) (8) (new_primModNatS01(x2207, x2206)=Succ(x2193) & Succ(Succ(Zero))=x2207 & Succ(Succ(Zero))=x2206 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (9) (Succ(Succ(x2210))=Succ(x2193) & Succ(Succ(Zero))=x2210 & Succ(Succ(Succ(x2208)))=x2209 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2199, x2198)=Succ(x2193) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS2(Succ(x2212), Succ(x2211)), Succ(x2211))=Succ(x2193) & Succ(Succ(Succ(x2197)))=x2212 & Succ(Succ(Zero))=x2211 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS02(x2203, x2202, x2201, x2200)=Succ(x2193) & Succ(Succ(Succ(x2201)))=x2203 & Succ(Succ(Succ(x2200)))=x2202 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2201)))))), Neg(Succ(Succ(Succ(Succ(Succ(x2200)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2201)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2201))), Succ(Succ(Succ(x2200))), Succ(x2201), Succ(x2200))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2200)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2201))), Succ(Succ(Succ(x2200))), Succ(x2201), Succ(x2200))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2207, x2206)=Succ(x2193) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS2(Succ(x2232), Succ(x2231)), Succ(x2231))=Succ(x2193) & Succ(Succ(Zero))=x2232 & Succ(Succ(Zero))=x2231 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2203, x2202, x2201, x2200)=Succ(x2193) which results in the following new constraints: (15) (new_primModNatS01(x2219, x2218)=Succ(x2193) & Succ(Succ(Succ(Succ(x2217))))=x2219 & Succ(Succ(Succ(Zero)))=x2218 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2217))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2217))))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2217)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2217)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2217)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2217)), Succ(Zero))))) (16) (new_primModNatS02(x2223, x2222, x2221, x2220)=Succ(x2193) & Succ(Succ(Succ(Succ(x2221))))=x2223 & Succ(Succ(Succ(Succ(x2220))))=x2222 & (\/x2224,x2225:new_primModNatS02(x2223, x2222, x2221, x2220)=Succ(x2224) & Succ(Succ(Succ(x2221)))=x2223 & Succ(Succ(Succ(x2220)))=x2222 ==> new_quot1(x2225, Neg(Succ(Succ(Succ(Succ(Succ(x2221)))))), Neg(Succ(Succ(Succ(Succ(Succ(x2220)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2221)))))))_>=_new_quot2(x2225, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2221))), Succ(Succ(Succ(x2220))), Succ(x2221), Succ(x2220))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2220)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2221))), Succ(Succ(Succ(x2220))), Succ(x2221), Succ(x2220))))) ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2221))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2221))))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2221)))), Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(x2221)), Succ(Succ(x2220)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2221)))), Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(x2221)), Succ(Succ(x2220)))))) (17) (new_primModNatS01(x2227, x2226)=Succ(x2193) & Succ(Succ(Succ(Zero)))=x2227 & Succ(Succ(Succ(Zero)))=x2226 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (18) (Succ(Succ(x2230))=Succ(x2193) & Succ(Succ(Succ(Zero)))=x2230 & Succ(Succ(Succ(Succ(x2228))))=x2229 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2217))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2217))))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2217)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2217)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2217)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2217)), Succ(Zero))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2221))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2221))))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2221)))), Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(x2221)), Succ(Succ(x2220)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2221)))), Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(x2221)), Succ(Succ(x2220)))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot1(x1636, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1637))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero))))), new_quot2(x1638, False, x1639, x1640) -> new_quot1(x1638, x1639, x1640, Integer(Pos(Zero)), x1639) which results in the following constraint: (1) (new_quot2(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero)))))=new_quot2(x1638, False, x1639, x1640) ==> new_quot1(x1636, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1637))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x1636, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1637))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero)))))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698)))))) -> new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero))))), new_quot2(x1699, False, x1700, x1701) -> new_quot1(x1699, x1700, x1701, Integer(Pos(Zero)), x1700) which results in the following constraint: (1) (new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))=new_quot2(x1699, False, x1700, x1701) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero))))=x2237 & Pos(Zero)=x2238 & new_primEqInt(x2237, x2238)=False ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2237, x2238)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero))))=Neg(Succ(x2240)) & Pos(Zero)=Pos(x2239) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) (4) (False=False & Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero))))=Pos(Succ(x2241)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Succ(x1698)=x2242 & Succ(Succ(Zero))=x2243 & new_primModNatS1(x2242, x2243)=Succ(x2240) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x2242, x2243)=Succ(x2240) which results in the following new constraints: (6) (Succ(Zero)=Succ(x2240) & Succ(x1698)=Succ(Zero) & Succ(Succ(Zero))=Succ(x2244) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) (7) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x2240) & Succ(x1698)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) (8) (new_primModNatS1(new_primMinusNatS0(x2246), Zero)=Succ(x2240) & Succ(x1698)=Succ(Succ(x2246)) & Succ(Succ(Zero))=Zero ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) (9) (new_primModNatS02(x2248, x2247, x2248, x2247)=Succ(x2240) & Succ(x1698)=Succ(Succ(x2248)) & Succ(Succ(Zero))=Succ(x2247) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) We solved constraint (7) using rules (I), (II).We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (x2248=x2249 & x2247=x2250 & new_primModNatS02(x2248, x2247, x2249, x2250)=Succ(x2240) & Succ(Zero)=x2247 ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2248)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2248)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2248)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2248)), Succ(Succ(Zero)))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2248, x2247, x2249, x2250)=Succ(x2240) which results in the following new constraints: (12) (new_primModNatS01(x2253, x2252)=Succ(x2240) & x2253=Succ(x2251) & x2252=Zero & Succ(Zero)=x2252 ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2253)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2253)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2253)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2253)), Succ(Succ(Zero)))))) (13) (new_primModNatS02(x2257, x2256, x2255, x2254)=Succ(x2240) & x2257=Succ(x2255) & x2256=Succ(x2254) & Succ(Zero)=x2256 & (\/x2258,x2259:new_primModNatS02(x2257, x2256, x2255, x2254)=Succ(x2258) & x2257=x2255 & x2256=x2254 & Succ(Zero)=x2256 ==> new_quot1(x2259, Neg(Succ(Succ(Succ(Succ(Succ(x2257)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2257)))))))_>=_new_quot2(x2259, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2257)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2257)), Succ(Succ(Zero)))))) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2257)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2257)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2257)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2257)), Succ(Succ(Zero)))))) (14) (new_primModNatS01(x2261, x2260)=Succ(x2240) & x2261=Zero & x2260=Zero & Succ(Zero)=x2260 ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2261)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2261)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2261)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2261)), Succ(Succ(Zero)))))) (15) (Succ(Succ(x2264))=Succ(x2240) & x2264=Zero & x2263=Succ(x2262) & Succ(Zero)=x2263 ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2264)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2264)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2264)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2264)), Succ(Succ(Zero)))))) We solved constraint (12) using rules (I), (II), (III).We simplified constraint (13) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (16) (new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2255))))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2255))))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x2255))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x2255))), Succ(Succ(Zero)))))) We solved constraint (14) using rules (I), (II), (III).We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (17) (new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759)))))) -> new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero))), new_quot2(x1760, False, x1761, x1762) -> new_quot1(x1760, x1761, x1762, Integer(Pos(Zero)), x1761) which results in the following constraint: (1) (new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero)))=new_quot2(x1760, False, x1761, x1762) ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS02(x1759, Zero, x1759, Zero))=x2267 & Pos(Zero)=x2268 & new_primEqInt(x2267, x2268)=False ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2267, x2268)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS02(x1759, Zero, x1759, Zero))=Neg(Succ(x2270)) & Pos(Zero)=Pos(x2269) ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero)))) (4) (False=False & Neg(new_primModNatS02(x1759, Zero, x1759, Zero))=Pos(Succ(x2271)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero)))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Zero=x2272 & x1759=x2273 & Zero=x2274 & new_primModNatS02(x1759, x2272, x2273, x2274)=Succ(x2270) ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero)))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1759, x2272, x2273, x2274)=Succ(x2270) which results in the following new constraints: (6) (new_primModNatS01(x2277, x2276)=Succ(x2270) & Zero=x2276 & x2277=Succ(x2275) & Zero=Zero ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x2277))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2277))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x2277, Zero, x2277, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x2277, Zero, x2277, Zero)))) (7) (new_primModNatS02(x2281, x2280, x2279, x2278)=Succ(x2270) & Zero=x2280 & x2281=Succ(x2279) & Zero=Succ(x2278) & (\/x2282,x2283:new_primModNatS02(x2281, x2280, x2279, x2278)=Succ(x2282) & Zero=x2280 & x2281=x2279 & Zero=x2278 ==> new_quot1(x2283, Neg(Succ(Succ(Succ(Succ(x2281))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2281))))))_>=_new_quot2(x2283, new_primEqInt(Neg(new_primModNatS02(x2281, Zero, x2281, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x2281, Zero, x2281, Zero)))) ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x2281))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2281))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x2281, Zero, x2281, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x2281, Zero, x2281, Zero)))) (8) (new_primModNatS01(x2285, x2284)=Succ(x2270) & Zero=x2284 & x2285=Zero & Zero=Zero ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x2285))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2285))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x2285, Zero, x2285, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x2285, Zero, x2285, Zero)))) (9) (Succ(Succ(x2288))=Succ(x2270) & Zero=x2287 & x2288=Zero & Zero=Succ(x2286) ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x2288))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2288))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x2288, Zero, x2288, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x2288, Zero, x2288, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (10) (Succ(x2275)=x2289 & new_primModNatS01(x2289, x2276)=Succ(x2270) & Zero=x2276 ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)))) We solved constraint (7) using rules (I), (II).We simplified constraint (8) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (Zero=x2296 & new_primModNatS01(x2296, x2284)=Succ(x2270) & Zero=x2284 ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) We solved constraint (9) using rules (I), (II).We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2289, x2276)=Succ(x2270) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS2(Succ(x2291), Succ(x2290)), Succ(x2290))=Succ(x2270) & Succ(x2275)=x2291 & Zero=x2290 ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2296, x2284)=Succ(x2270) which results in the following new constraint: (14) (new_primModNatS1(new_primMinusNatS2(Succ(x2298), Succ(x2297)), Succ(x2297))=Succ(x2270) & Zero=x2298 & Zero=x2297 ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) We simplified constraint (14) using rules (III), (IV), (VII) which results in the following new constraint: (15) (new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_quot1(x1819, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))), new_quot2(x1820, False, x1821, x1822) -> new_quot1(x1820, x1821, x1822, Integer(Pos(Zero)), x1821) which results in the following constraint: (1) (new_quot2(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))=new_quot2(x1820, False, x1821, x1822) ==> new_quot1(x1819, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x1819, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) *(new_quot2(x3, False, Pos(Succ(Zero)), Neg(Succ(Succ(x7))))_>=_new_quot1(x3, Pos(Succ(Zero)), Neg(Succ(Succ(x7))), Integer(Pos(Zero)), Pos(Succ(Zero)))) *(new_quot2(x8, False, Pos(Succ(Zero)), Pos(Succ(Succ(x12))))_>=_new_quot1(x8, Pos(Succ(Zero)), Pos(Succ(Succ(x12))), Integer(Pos(Zero)), Pos(Succ(Zero)))) *(new_quot2(x13, False, Neg(Succ(Zero)), Pos(Succ(Succ(x17))))_>=_new_quot1(x13, Neg(Succ(Zero)), Pos(Succ(Succ(x17))), Integer(Pos(Zero)), Neg(Succ(Zero)))) *(new_quot2(x18, False, Neg(Succ(Zero)), Neg(Succ(Succ(x22))))_>=_new_quot1(x18, Neg(Succ(Zero)), Neg(Succ(Succ(x22))), Integer(Pos(Zero)), Neg(Succ(Zero)))) *(new_quot2(x23, False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))))_>=_new_quot1(x23, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))) *(new_quot2(x28, False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))))_>=_new_quot1(x28, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))) *(new_quot2(x33, False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))))_>=_new_quot1(x33, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))) *(new_quot2(x38, False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))))_>=_new_quot1(x38, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))) *(new_quot2(x43, False, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))))_>=_new_quot1(x43, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x47))))))) *(new_quot2(x49, False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))))_>=_new_quot1(x49, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *(new_quot2(x54, False, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x54, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x58))))))) *(new_quot2(x59, False, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x59, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x63))))))) *(new_quot2(x64, False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x64, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *(new_quot2(x68, False, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))))_>=_new_quot1(x68, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x72))))))) *(new_quot2(x74, False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))))_>=_new_quot1(x74, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *(new_quot2(x79, False, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x79, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x83))))))) *(new_quot2(x84, False, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x84, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x88))))))) *(new_quot2(x89, False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x89, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *(new_quot2(x93, False, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))))_>=_new_quot1(x93, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x97))))))) *(new_quot2(x99, False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))))_>=_new_quot1(x99, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *(new_quot2(x104, False, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x104, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x108))))))) *(new_quot2(x109, False, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x109, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x113))))))) *(new_quot2(x114, False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x114, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *(new_quot2(x118, False, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))))_>=_new_quot1(x118, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x122))))))) *(new_quot2(x124, False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))))_>=_new_quot1(x124, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *(new_quot2(x129, False, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x129, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x133))))))) *(new_quot2(x134, False, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x134, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x138))))))) *(new_quot2(x139, False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x139, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) *(new_quot1(x143, Pos(Succ(Zero)), Neg(Succ(Succ(x144))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero)))) *new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) *(new_quot1(x204, Pos(Succ(Zero)), Pos(Succ(Succ(x205))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero)))) *new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) *(new_quot1(x265, Neg(Succ(Zero)), Pos(Succ(Succ(x266))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero)))) *new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) *(new_quot1(x326, Neg(Succ(Zero)), Neg(Succ(Succ(x327))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero)))) *new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) *(new_quot1(x387, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x388)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot2(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero))))) *new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) *(new_quot1(x448, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x449)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot2(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero))))) *new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) *(new_quot1(x509, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x510)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot2(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero))))) *new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) *(new_quot1(x570, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x571)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot2(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero))))) *new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))))) *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))))) *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)))) *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1878))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1878))))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1878)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1878)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1878)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1878)), Succ(Zero))))) *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1882))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1882))))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1882)))), Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(x1882)), Succ(Succ(x1881)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1882)))), Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(x1882)), Succ(Succ(x1881)))))) *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) *(new_quot1(x721, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x722))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero)))))) *new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1916))))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1916))))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x1916))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x1916))), Succ(Succ(Zero)))))) *new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) *(new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)))) *(new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) *new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) *(new_quot1(x904, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) *new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))))) *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))))) *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)))) *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1991))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1991))))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1991)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1991)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1991)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1991)), Succ(Zero))))) *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1995))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1995))))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1995)))), Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(x1995)), Succ(Succ(x1994)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1995)))), Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(x1995)), Succ(Succ(x1994)))))) *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) *(new_quot1(x1026, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1027))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero)))))) *new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2029))))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2029))))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x2029))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x2029))), Succ(Succ(Zero)))))) *new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) *(new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)))) *(new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) *new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) *(new_quot1(x1209, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) *new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))))) *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))))) *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)))) *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2104))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2104))))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2104)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2104)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2104)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2104)), Succ(Zero))))) *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2108))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2108))))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2108)))), Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(x2108)), Succ(Succ(x2107)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2108)))), Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(x2108)), Succ(Succ(x2107)))))) *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) *(new_quot1(x1331, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1332))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero)))))) *new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2142))))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2142))))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x2142))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x2142))), Succ(Succ(Zero)))))) *new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) *(new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)))) *(new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) *new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) *(new_quot1(x1514, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) *new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))))) *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))))) *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)))) *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2217))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2217))))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2217)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2217)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2217)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2217)), Succ(Zero))))) *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2221))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2221))))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2221)))), Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(x2221)), Succ(Succ(x2220)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2221)))), Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(x2221)), Succ(Succ(x2220)))))) *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) *(new_quot1(x1636, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1637))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero)))))) *new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2255))))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2255))))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x2255))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x2255))), Succ(Succ(Zero)))))) *new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) *(new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)))) *(new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) *new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) *(new_quot1(x1819, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (648) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz59, False, vuz158, vuz224) -> new_quot1(vuz59, vuz158, vuz224, Integer(Pos(Zero)), vuz158) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (649) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot0(vuz236, vuz237, Succ(vuz2380), Succ(vuz2390)) -> new_quot0(vuz236, vuz237, vuz2380, vuz2390) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (650) 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(vuz236, vuz237, Succ(vuz2380), Succ(vuz2390)) -> new_quot0(vuz236, vuz237, vuz2380, vuz2390) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (651) YES ---------------------------------------- (652) Obligation: Q DP problem: The TRS P consists of the following rules: new_signumReal1(vuz198, Succ(vuz1990), Succ(vuz2000), h) -> new_signumReal1(vuz198, vuz1990, vuz2000, h) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (653) 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_signumReal1(vuz198, Succ(vuz1990), Succ(vuz2000), h) -> new_signumReal1(vuz198, vuz1990, vuz2000, h) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4 ---------------------------------------- (654) YES ---------------------------------------- (655) Obligation: Q DP problem: The TRS P consists of the following rules: new_signumReal11(vuz138, Succ(vuz1390), Succ(vuz1400), h) -> new_signumReal11(vuz138, vuz1390, vuz1400, h) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (656) 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_signumReal11(vuz138, Succ(vuz1390), Succ(vuz1400), h) -> new_signumReal11(vuz138, vuz1390, vuz1400, h) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4 ---------------------------------------- (657) YES ---------------------------------------- (658) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot(vuz241, vuz242, Succ(vuz2430), Succ(vuz2440)) -> new_quot(vuz241, vuz242, vuz2430, vuz2440) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (659) 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(vuz241, vuz242, Succ(vuz2430), Succ(vuz2440)) -> new_quot(vuz241, vuz242, vuz2430, vuz2440) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (660) YES ---------------------------------------- (661) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_esEs(new_rem(vuz90, vuz116), new_fromInt), vuz116, vuz90) new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_rem(vuz90, vuz116)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primMinusNatS2(Zero, Zero) -> Zero new_primEqNat0(Zero, Zero) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_fromInt -> Pos(Zero) new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primModNatS1(Zero, vuz11600) -> Zero new_esEs(vuz101, vuz100) -> new_primEqInt(vuz101, vuz100) new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_error -> error([]) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primEqNat0(Succ(vuz16000), Zero) -> False new_primEqNat0(Zero, Succ(vuz47000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_rem(vuz90, vuz116) -> new_primRemInt(vuz90, vuz116) new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_esEs(x0, x1) new_primEqNat0(Zero, Zero) new_rem(x0, x1) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_fromInt new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (662) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_esEs(new_rem(vuz90, vuz116), new_fromInt), vuz116, vuz90) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz90, vuz116), new_fromInt), vuz116, vuz90),new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz90, vuz116), new_fromInt), vuz116, vuz90)) ---------------------------------------- (663) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_rem(vuz90, vuz116)) new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz90, vuz116), new_fromInt), vuz116, vuz90) The TRS R consists of the following rules: new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primMinusNatS2(Zero, Zero) -> Zero new_primEqNat0(Zero, Zero) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_fromInt -> Pos(Zero) new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primModNatS1(Zero, vuz11600) -> Zero new_esEs(vuz101, vuz100) -> new_primEqInt(vuz101, vuz100) new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_error -> error([]) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primEqNat0(Succ(vuz16000), Zero) -> False new_primEqNat0(Zero, Succ(vuz47000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_rem(vuz90, vuz116) -> new_primRemInt(vuz90, vuz116) new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_esEs(x0, x1) new_primEqNat0(Zero, Zero) new_rem(x0, x1) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_fromInt new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) 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'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_rem(vuz90, vuz116)) new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz90, vuz116), new_fromInt), vuz116, vuz90) The TRS R consists of the following rules: new_rem(vuz90, vuz116) -> new_primRemInt(vuz90, vuz116) new_fromInt -> Pos(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz16000), Zero) -> False new_primEqNat0(Zero, Succ(vuz47000)) -> False new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_esEs(x0, x1) new_primEqNat0(Zero, Zero) new_rem(x0, x1) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_fromInt new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (666) 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) ---------------------------------------- (667) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_rem(vuz90, vuz116)) new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz90, vuz116), new_fromInt), vuz116, vuz90) The TRS R consists of the following rules: new_rem(vuz90, vuz116) -> new_primRemInt(vuz90, vuz116) new_fromInt -> Pos(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz16000), Zero) -> False new_primEqNat0(Zero, Succ(vuz47000)) -> False new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqNat0(Zero, Zero) new_rem(x0, x1) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_fromInt new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (668) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_rem(vuz90, vuz116)) at position [1] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)),new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116))) ---------------------------------------- (669) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz90, vuz116), new_fromInt), vuz116, vuz90) new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) The TRS R consists of the following rules: new_rem(vuz90, vuz116) -> new_primRemInt(vuz90, vuz116) new_fromInt -> Pos(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz16000), Zero) -> False new_primEqNat0(Zero, Succ(vuz47000)) -> False new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqNat0(Zero, Zero) new_rem(x0, x1) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_fromInt new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (670) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz90, vuz116), new_fromInt), vuz116, vuz90) at position [0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), new_fromInt), vuz116, vuz90),new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), new_fromInt), vuz116, vuz90)) ---------------------------------------- (671) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), new_fromInt), vuz116, vuz90) The TRS R consists of the following rules: new_rem(vuz90, vuz116) -> new_primRemInt(vuz90, vuz116) new_fromInt -> Pos(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz16000), Zero) -> False new_primEqNat0(Zero, Succ(vuz47000)) -> False new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqNat0(Zero, Zero) new_rem(x0, x1) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_fromInt new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (672) 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. ---------------------------------------- (673) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), new_fromInt), vuz116, vuz90) The TRS R consists of the following rules: new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), 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(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz16000), Zero) -> False new_primEqNat0(Zero, Succ(vuz47000)) -> False new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqNat0(Zero, Zero) new_rem(x0, x1) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_fromInt new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (674) 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) ---------------------------------------- (675) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), new_fromInt), vuz116, vuz90) The TRS R consists of the following rules: new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), 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(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz16000), Zero) -> False new_primEqNat0(Zero, Succ(vuz47000)) -> False new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqNat0(Zero, Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_fromInt new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (676) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), new_fromInt), vuz116, vuz90) at position [0,1] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), Pos(Zero)), vuz116, vuz90),new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), Pos(Zero)), vuz116, vuz90)) ---------------------------------------- (677) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), Pos(Zero)), vuz116, vuz90) The TRS R consists of the following rules: new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), 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(vuz10100)), Neg(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Neg(Succ(vuz10100)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Succ(vuz10100)), Pos(Succ(vuz10000))) -> new_primEqNat0(vuz10100, vuz10000) new_primEqInt(Pos(Succ(vuz10100)), Neg(vuz1000)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz10000))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz10000))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz16000), Zero) -> False new_primEqNat0(Zero, Succ(vuz47000)) -> False new_primEqNat0(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat0(vuz16000, vuz47000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqNat0(Zero, Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_fromInt new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (678) 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. ---------------------------------------- (679) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), Pos(Zero)), vuz116, vuz90) The TRS R consists of the following rules: new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqNat0(Zero, Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_fromInt new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (680) 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(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_fromInt new_primEqNat0(Succ(x0), Succ(x1)) ---------------------------------------- (681) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), Pos(Zero)), vuz116, vuz90) The TRS R consists of the following rules: new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) 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, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 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(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), Pos(Zero)), vuz116, vuz90) 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_primMinusNatS1, 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)))) (17) (new_primModNatS1(new_primMinusNatS0(x31), 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))))) (18) (new_primModNatS02(x33, x32, x33, x32)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Succ(x33))), Neg(Succ(Succ(x32))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x33))), Neg(Succ(Succ(x32)))), Pos(Zero)), Neg(Succ(Succ(x32))), Pos(Succ(Succ(x33))))) We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x29))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x29)))), Pos(Zero)), Neg(Succ(Succ(x29))), Pos(Succ(Zero)))) We simplified constraint (16) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'0(Pos(Succ(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 (17) using rules (III), (IV), (VII) which results in the following new constraint: (21) (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 (18) using rules (III), (IV), (VII) which results in the following new constraint: (22) (new_gcd0Gcd'0(Pos(Succ(Succ(x38))), Neg(Succ(Succ(x39))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x38))), Neg(Succ(Succ(x39)))), Pos(Zero)), Neg(Succ(Succ(x39))), Pos(Succ(Succ(x38))))) 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(x40))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x40)))), Pos(Zero)), Pos(Succ(Succ(x40))), Pos(Succ(Zero)))) (24) (new_primModNatS1(new_primMinusNatS1, 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)))) (25) (new_primModNatS1(new_primMinusNatS0(x42), Zero)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Succ(x42))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x42))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x42))))) (26) (new_primModNatS02(x44, x43, x44, x43)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Succ(x44))), Pos(Succ(Succ(x43))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x44))), Pos(Succ(Succ(x43)))), Pos(Zero)), Pos(Succ(Succ(x43))), Pos(Succ(Succ(x44))))) 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(x40))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x40)))), Pos(Zero)), Pos(Succ(Succ(x40))), 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(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 (25) using rules (III), (IV), (VII) which results in the following new constraint: (29) (new_gcd0Gcd'0(Pos(Succ(Succ(x42))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x42))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x42))))) We simplified constraint (26) using rules (III), (IV), (VII) which results in the following new constraint: (30) (new_gcd0Gcd'0(Pos(Succ(Succ(x49))), Pos(Succ(Succ(x50))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x49))), Pos(Succ(Succ(x50)))), Pos(Zero)), Pos(Succ(Succ(x50))), Pos(Succ(Succ(x49))))) 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(x55), Neg(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x55), Neg(Zero)), Pos(Zero)), Neg(Zero), Neg(x55))) (32) (Neg(new_primModNatS1(x57, x56))=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Neg(x57), Pos(Succ(x56)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x57), Pos(Succ(x56))), Pos(Zero)), Pos(Succ(x56)), Neg(x57))) (33) (new_error=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Pos(x58), Pos(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x58), Pos(Zero)), Pos(Zero)), Pos(Zero), Pos(x58))) (34) (Neg(new_primModNatS1(x60, x59))=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Neg(x60), Neg(Succ(x59)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x60), Neg(Succ(x59))), Pos(Zero)), Neg(Succ(x59)), Neg(x60))) (35) (new_error=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Pos(x61), Neg(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x61), Neg(Zero)), Pos(Zero)), Neg(Zero), Pos(x61))) (36) (new_error=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Neg(x62), Pos(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x62), Pos(Zero)), Pos(Zero)), Pos(Zero), Neg(x62))) 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(x57, x56)=Succ(x16) ==> new_gcd0Gcd'0(Neg(x57), Pos(Succ(x56)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x57), Pos(Succ(x56))), Pos(Zero)), Pos(Succ(x56)), Neg(x57))) 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(x60, x59)=Succ(x16) ==> new_gcd0Gcd'0(Neg(x60), Neg(Succ(x59)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x60), Neg(Succ(x59))), Pos(Zero)), Neg(Succ(x59)), Neg(x60))) 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(x57, x56)=Succ(x16) which results in the following new constraints: (39) (Succ(Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x63))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x63)))), Pos(Zero)), Pos(Succ(Succ(x63))), Neg(Succ(Zero)))) (40) (new_primModNatS1(new_primMinusNatS1, 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)))) (41) (new_primModNatS1(new_primMinusNatS0(x65), Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x65))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x65))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x65))))) (42) (new_primModNatS02(x67, x66, x67, x66)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x67))), Pos(Succ(Succ(x66))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x67))), Pos(Succ(Succ(x66)))), Pos(Zero)), Pos(Succ(Succ(x66))), Neg(Succ(Succ(x67))))) 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(x63))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x63)))), Pos(Zero)), Pos(Succ(Succ(x63))), 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(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 (41) using rules (III), (IV), (VII) which results in the following new constraint: (45) (new_gcd0Gcd'0(Neg(Succ(Succ(x65))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x65))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x65))))) We simplified constraint (42) using rules (III), (IV), (VII) which results in the following new constraint: (46) (new_gcd0Gcd'0(Neg(Succ(Succ(x72))), Pos(Succ(Succ(x73))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x72))), Pos(Succ(Succ(x73)))), Pos(Zero)), Pos(Succ(Succ(x73))), Neg(Succ(Succ(x72))))) We simplified constraint (38) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x60, x59)=Succ(x16) which results in the following new constraints: (47) (Succ(Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x74))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x74)))), Pos(Zero)), Neg(Succ(Succ(x74))), Neg(Succ(Zero)))) (48) (new_primModNatS1(new_primMinusNatS1, 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)))) (49) (new_primModNatS1(new_primMinusNatS0(x76), Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x76))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x76))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x76))))) (50) (new_primModNatS02(x78, x77, x78, x77)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x78))), Neg(Succ(Succ(x77))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x78))), Neg(Succ(Succ(x77)))), Pos(Zero)), Neg(Succ(Succ(x77))), Neg(Succ(Succ(x78))))) 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(x74))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x74)))), Pos(Zero)), Neg(Succ(Succ(x74))), 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(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 (49) using rules (III), (IV), (VII) which results in the following new constraint: (53) (new_gcd0Gcd'0(Neg(Succ(Succ(x76))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x76))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x76))))) We simplified constraint (50) using rules (III), (IV), (VII) which results in the following new constraint: (54) (new_gcd0Gcd'0(Neg(Succ(Succ(x83))), Neg(Succ(Succ(x84))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x83))), Neg(Succ(Succ(x84)))), Pos(Zero)), Neg(Succ(Succ(x84))), Neg(Succ(Succ(x83))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) *(new_gcd0Gcd'1(False, x2, x3)_>=_new_gcd0Gcd'0(x2, new_primRemInt(x3, x2))) *new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), Pos(Zero)), vuz116, vuz90) *(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(x40))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x40)))), Pos(Zero)), Pos(Succ(Succ(x40))), Pos(Succ(Zero)))) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x63))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x63)))), Pos(Zero)), Pos(Succ(Succ(x63))), Neg(Succ(Zero)))) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x74))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x74)))), Pos(Zero)), Neg(Succ(Succ(x74))), Neg(Succ(Zero)))) *(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(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(Succ(x38))), Neg(Succ(Succ(x39))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x38))), Neg(Succ(Succ(x39)))), Pos(Zero)), Neg(Succ(Succ(x39))), Pos(Succ(Succ(x38))))) *(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(x42))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x42))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x42))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(x49))), Pos(Succ(Succ(x50))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x49))), Pos(Succ(Succ(x50)))), Pos(Zero)), Pos(Succ(Succ(x50))), Pos(Succ(Succ(x49))))) *(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(x65))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x65))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x65))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(x72))), Pos(Succ(Succ(x73))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x72))), Pos(Succ(Succ(x73)))), Pos(Zero)), Pos(Succ(Succ(x73))), Neg(Succ(Succ(x72))))) *(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(x76))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x76))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x76))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(x83))), Neg(Succ(Succ(x84))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x83))), Neg(Succ(Succ(x84)))), Pos(Zero)), Neg(Succ(Succ(x84))), Neg(Succ(Succ(x83))))) 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, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), Pos(Zero)), vuz116, vuz90) The TRS R consists of the following rules: new_primRemInt(Pos(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (684) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(vuz90, vuz116) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz90, vuz116), Pos(Zero)), vuz116, vuz90) 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))) ---------------------------------------- (685) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 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(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (686) 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))) ---------------------------------------- (687) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 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(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(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 1 SCC with 1 less node. ---------------------------------------- (689) 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, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 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(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (690) 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))) ---------------------------------------- (691) 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, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 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(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (692) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (693) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 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(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (694) 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))) ---------------------------------------- (695) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 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(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (696) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (697) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'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, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 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(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (698) 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))) ---------------------------------------- (699) 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, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 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(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (700) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (701) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 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(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (702) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, vuz116, vuz90) -> new_gcd0Gcd'0(vuz116, new_primRemInt(vuz90, vuz116)) 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)) ---------------------------------------- (703) 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(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (704) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 4 less nodes. ---------------------------------------- (705) Complex Obligation (AND) ---------------------------------------- (706) 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(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (707) 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. ---------------------------------------- (708) 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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (709) 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(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_error new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) ---------------------------------------- (710) 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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (711) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(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(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (712) 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(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (713) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (714) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(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(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (715) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), 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)))) ---------------------------------------- (716) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(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_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (717) 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_primMinusNatS1, 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)))) ---------------------------------------- (718) 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(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (719) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (720) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (721) 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(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(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(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0))))) (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, 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_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0))))) ---------------------------------------- (722) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(Zero)) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (723) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (724) Complex Obligation (AND) ---------------------------------------- (725) 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(x0), 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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (726) 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. ---------------------------------------- (727) 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(x0), 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(vuz10100)), Pos(vuz1000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (728) 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) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) ---------------------------------------- (729) 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(x0), 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(vuz10100)), Pos(vuz1000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (730) 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(x0), 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))))) ---------------------------------------- (731) 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(vuz10100)), Pos(vuz1000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (732) 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)))) ---------------------------------------- (733) 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(vuz10100)), Pos(vuz1000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (734) 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(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (735) 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_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (736) 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_primMinusNatS1, 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)))) ---------------------------------------- (737) 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(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(vuz10100)), Pos(vuz1000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (738) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (739) 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(new_primMinusNatS0(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(vuz10100)), Pos(vuz1000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (740) 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(x0), 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)))) ---------------------------------------- (741) 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'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))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (742) 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(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, 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_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Zero))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(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(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0)))))) ---------------------------------------- (743) 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(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (744) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (745) 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(new_primMinusNatS0(x0), 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))) 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(vuz10100)), Pos(vuz1000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (746) 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(x0), 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)))))) ---------------------------------------- (747) 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(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(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(vuz10100)), Pos(vuz1000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (748) 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(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, 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(x0), 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(x0), Zero)))) ---------------------------------------- (749) 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(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, 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_primMinusNatS1, 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(x0), Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (750) 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_primMinusNatS1, 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)))) ---------------------------------------- (751) 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(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, 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(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(vuz10100)), Pos(vuz1000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (752) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (753) Obligation: Q DP problem: The TRS P consists of the following rules: 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(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(vuz10100)), Pos(vuz1000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (754) 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(x0), 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)))) ---------------------------------------- (755) Obligation: Q DP problem: The TRS P consists of the following rules: 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(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(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(vuz10100)), Pos(vuz1000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (756) 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(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, 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_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(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(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0))))))) ---------------------------------------- (757) 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(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(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(vuz10100)), Pos(vuz1000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (758) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (759) 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(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), 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))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (760) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), 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))))))) ---------------------------------------- (761) 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(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(vuz10100)), Pos(vuz1000)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (762) 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)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'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'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'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, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) ---------------------------------------- (763) YES ---------------------------------------- (764) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) 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_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (767) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primMinusNatS0(x0) new_primMinusNatS1 ---------------------------------------- (768) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (769) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (770) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (771) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) ---------------------------------------- (772) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (773) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (774) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (775) 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))))) ---------------------------------------- (776) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (777) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) ---------------------------------------- (778) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (779) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (780) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (781) 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_primMinusNatS2(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)))))) ---------------------------------------- (782) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (783) 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_primMinusNatS2(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))))) ---------------------------------------- (784) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (785) 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))))) ---------------------------------------- (786) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (787) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (788) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (789) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (790) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (791) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (792) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (793) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (794) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (795) 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)))))) ---------------------------------------- (796) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (797) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (798) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (799) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (800) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (801) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (802) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (803) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (804) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (805) 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_primMinusNatS2(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))))))) ---------------------------------------- (806) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (807) 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_primMinusNatS2(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)))))) ---------------------------------------- (808) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (809) 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)))))) ---------------------------------------- (810) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (811) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (812) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (813) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (814) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (815) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (816) Complex Obligation (AND) ---------------------------------------- (817) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (818) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (819) 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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (820) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (821) 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_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (822) 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_primMinusNatS2(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))))) ---------------------------------------- (823) 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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (824) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (825) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (826) 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)))))) ---------------------------------------- (827) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (828) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) ---------------------------------------- (829) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (830) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (831) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (832) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Neg(x_1)) = 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)) = 3*x_1 + 3*x_2 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = 3*x_2 + 3*x_3 POL(new_primEqInt(x_1, x_2)) = 0 POL(new_primMinusNatS2(x_1, x_2)) = x_1 POL(new_primModNatS01(x_1, x_2)) = 1 + x_1 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 2 + x_1 POL(new_primModNatS1(x_1, x_2)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) ---------------------------------------- (833) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (834) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. ---------------------------------------- (835) TRUE ---------------------------------------- (836) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (837) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (838) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (839) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (840) Complex Obligation (AND) ---------------------------------------- (841) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (842) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (843) 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_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (844) 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_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'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_primMinusNatS2(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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (845) 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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (846) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (847) 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_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (848) 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_primMinusNatS2(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)))))) ---------------------------------------- (849) 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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (850) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Neg(x_1)) = 2*x_1 POL(Pos(x_1)) = 0 POL(Succ(x_1)) = 1 + x_1 POL(True) = 3 POL(Zero) = 0 POL(new_gcd0Gcd'0(x_1, x_2)) = 2 + x_1 + x_2 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = 2 + x_2 + x_3 POL(new_primEqInt(x_1, x_2)) = 0 POL(new_primMinusNatS2(x_1, x_2)) = x_1 POL(new_primModNatS01(x_1, x_2)) = 3 + x_1 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 3 + x_1 POL(new_primModNatS1(x_1, x_2)) = 2 + x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) ---------------------------------------- (851) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (852) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. ---------------------------------------- (853) TRUE ---------------------------------------- (854) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (855) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2))), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x4))))), Neg(Succ(Succ(Succ(Succ(x5)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x4)), Succ(Succ(x5)), x4, x5)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x5))))), Neg(Succ(Succ(Succ(Succ(x4)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x4))))), Neg(Succ(Succ(Succ(Succ(x5)))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x3))=x12 & Succ(Succ(x2))=x13 & new_primModNatS02(x12, x13, x3, x2)=Succ(Succ(Succ(Succ(x5)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x12, x13, x3, x2)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: (3) (new_primModNatS01(x16, x15)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x14)))=x16 & Succ(Succ(Zero))=x15 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) (4) (new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x18)))=x20 & Succ(Succ(Succ(x17)))=x19 & (\/x21:new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x21)))) & Succ(Succ(x18))=x20 & Succ(Succ(x17))=x19 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x17))))), Neg(Succ(Succ(Succ(Succ(x18))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x17))))), Neg(new_primModNatS02(Succ(Succ(x18)), Succ(Succ(x17)), x18, x17)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x17)))))), Neg(Succ(Succ(Succ(Succ(Succ(x18)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x17)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x18))), Succ(Succ(Succ(x17))), Succ(x18), Succ(x17))))) (5) (new_primModNatS01(x23, x22)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x23 & Succ(Succ(Zero))=x22 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (6) (Succ(Succ(x26))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x26 & Succ(Succ(Succ(x24)))=x25 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x16, x15)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x28), Succ(x27)), Succ(x27))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x14)))=x28 & Succ(Succ(Zero))=x27 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x18)))=x20 & Succ(Succ(Succ(x17)))=x19 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x17)))))), Neg(Succ(Succ(Succ(Succ(Succ(x18)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x17)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x18))), Succ(Succ(Succ(x17))), Succ(x18), Succ(x17))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x23, x22)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x47), Succ(x46)), Succ(x46))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x47 & Succ(Succ(Zero))=x46 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: (12) (new_primModNatS01(x35, x34)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x33))))=x35 & Succ(Succ(Succ(Zero)))=x34 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x33)))), Succ(Succ(Succ(Zero))), Succ(Succ(x33)), Succ(Zero))))) (13) (new_primModNatS02(x39, x38, x37, x36)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x37))))=x39 & Succ(Succ(Succ(Succ(x36))))=x38 & (\/x40:new_primModNatS02(x39, x38, x37, x36)=Succ(Succ(Succ(Succ(x40)))) & Succ(Succ(Succ(x37)))=x39 & Succ(Succ(Succ(x36)))=x38 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x36)))))), Neg(Succ(Succ(Succ(Succ(Succ(x37)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x36)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x37))), Succ(Succ(Succ(x36))), Succ(x37), Succ(x36))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x37)))), Succ(Succ(Succ(Succ(x36)))), Succ(Succ(x37)), Succ(Succ(x36)))))) (14) (new_primModNatS01(x42, x41)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x42 & Succ(Succ(Succ(Zero)))=x41 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (15) (Succ(Succ(x45))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x45 & Succ(Succ(Succ(Succ(x43))))=x44 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x33)))), Succ(Succ(Succ(Zero))), Succ(Succ(x33)), Succ(Zero))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x37)))), Succ(Succ(Succ(Succ(x36)))), Succ(Succ(x37)), Succ(Succ(x36)))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6)))))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x8))))), Neg(Succ(Succ(Succ(Succ(x9)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Neg(new_primModNatS02(Succ(Succ(x9)), Succ(Succ(x8)), x9, x8))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x8))))), Neg(Succ(Succ(Succ(Succ(x9)))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7))=x52 & Pos(Zero)=x53 & new_primEqInt(x52, x53)=False ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x52, x53)=False which results in the following new constraint: (3) (False=False & Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7))=Neg(Succ(x55)) & Pos(Zero)=Pos(x54) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (4) (Succ(Succ(x6))=x56 & Succ(Succ(x7))=x57 & new_primModNatS02(x56, x57, x6, x7)=Succ(x55) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x56, x57, x6, x7)=Succ(x55) which results in the following new constraints: (5) (new_primModNatS01(x60, x59)=Succ(x55) & Succ(Succ(Succ(x58)))=x60 & Succ(Succ(Zero))=x59 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x58)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x58))), Succ(Succ(Zero)), Succ(x58), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x58)))))))) (6) (new_primModNatS02(x64, x63, x62, x61)=Succ(x55) & Succ(Succ(Succ(x62)))=x64 & Succ(Succ(Succ(x61)))=x63 & (\/x65:new_primModNatS02(x64, x63, x62, x61)=Succ(x65) & Succ(Succ(x62))=x64 & Succ(Succ(x61))=x63 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x62))))), Neg(Succ(Succ(Succ(Succ(x61))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x62)), Succ(Succ(x61)), x62, x61)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x61))))), Neg(Succ(Succ(Succ(Succ(x62))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x62)))))), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x62))), Succ(Succ(Succ(x61))), Succ(x62), Succ(x61))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))), Neg(Succ(Succ(Succ(Succ(Succ(x62)))))))) (7) (new_primModNatS01(x67, x66)=Succ(x55) & Succ(Succ(Zero))=x67 & Succ(Succ(Zero))=x66 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) (8) (Succ(Succ(x70))=Succ(x55) & Succ(Succ(Zero))=x70 & Succ(Succ(Succ(x68)))=x69 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x68))), Zero, Succ(x68))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x60, x59)=Succ(x55) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x72), Succ(x71)), Succ(x71))=Succ(x55) & Succ(Succ(Succ(x58)))=x72 & Succ(Succ(Zero))=x71 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x58)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x58))), Succ(Succ(Zero)), Succ(x58), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x58)))))))) We simplified constraint (6) using rule (IV) which results in the following new constraint: (10) (new_primModNatS02(x64, x63, x62, x61)=Succ(x55) & Succ(Succ(Succ(x62)))=x64 & Succ(Succ(Succ(x61)))=x63 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x62)))))), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x62))), Succ(Succ(Succ(x61))), Succ(x62), Succ(x61))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))), Neg(Succ(Succ(Succ(Succ(Succ(x62)))))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x67, x66)=Succ(x55) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS2(Succ(x91), Succ(x90)), Succ(x90))=Succ(x55) & Succ(Succ(Zero))=x91 & Succ(Succ(Zero))=x90 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (8) using rules (I), (II), (IV) which results in the following new constraint: (12) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x68))), Zero, Succ(x68))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x58)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x58))), Succ(Succ(Zero)), Succ(x58), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x58)))))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x64, x63, x62, x61)=Succ(x55) which results in the following new constraints: (14) (new_primModNatS01(x79, x78)=Succ(x55) & Succ(Succ(Succ(Succ(x77))))=x79 & Succ(Succ(Succ(Zero)))=x78 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x77))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x77)))), Succ(Succ(Succ(Zero))), Succ(Succ(x77)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x77))))))))) (15) (new_primModNatS02(x83, x82, x81, x80)=Succ(x55) & Succ(Succ(Succ(Succ(x81))))=x83 & Succ(Succ(Succ(Succ(x80))))=x82 & (\/x84:new_primModNatS02(x83, x82, x81, x80)=Succ(x84) & Succ(Succ(Succ(x81)))=x83 & Succ(Succ(Succ(x80)))=x82 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x81)))))), Neg(Succ(Succ(Succ(Succ(Succ(x80)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x81))), Succ(Succ(Succ(x80))), Succ(x81), Succ(x80))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x80)))))), Neg(Succ(Succ(Succ(Succ(Succ(x81)))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x81))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x81)))), Succ(Succ(Succ(Succ(x80)))), Succ(Succ(x81)), Succ(Succ(x80)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x81))))))))) (16) (new_primModNatS01(x86, x85)=Succ(x55) & Succ(Succ(Succ(Zero)))=x86 & Succ(Succ(Succ(Zero)))=x85 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) (17) (Succ(Succ(x89))=Succ(x55) & Succ(Succ(Succ(Zero)))=x89 & Succ(Succ(Succ(Succ(x87))))=x88 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x87)))), Succ(Zero), Succ(Succ(x87)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x77))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x77)))), Succ(Succ(Succ(Zero))), Succ(Succ(x77)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x77))))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x81))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x81)))), Succ(Succ(Succ(Succ(x80)))), Succ(Succ(x81)), Succ(Succ(x80)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x81))))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (17) using rules (I), (II), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x87)))), Succ(Zero), Succ(Succ(x87)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (22) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x33)))), Succ(Succ(Succ(Zero))), Succ(Succ(x33)), Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x37)))), Succ(Succ(Succ(Succ(x36)))), Succ(Succ(x37)), Succ(Succ(x36)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x87)))), Succ(Zero), Succ(Succ(x87)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x68))), Zero, Succ(x68))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x58)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x58))), Succ(Succ(Zero)), Succ(x58), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x58)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x77))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x77)))), Succ(Succ(Succ(Zero))), Succ(Succ(x77)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x77))))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x81))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x81)))), Succ(Succ(Succ(Succ(x80)))), Succ(Succ(x81)), Succ(Succ(x80)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x81))))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (856) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (857) 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(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (858) 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. ---------------------------------------- (859) 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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (860) 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(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_error new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) ---------------------------------------- (861) 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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (862) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(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(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (863) 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(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (864) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (865) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(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(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (866) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), 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)))) ---------------------------------------- (867) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(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_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (868) 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_primMinusNatS1, 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)))) ---------------------------------------- (869) 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(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (870) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (871) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (872) 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(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(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(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0))))) (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, 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_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0))))) ---------------------------------------- (873) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(Zero)) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (874) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (875) Complex Obligation (AND) ---------------------------------------- (876) 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(x0), 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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (877) 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. ---------------------------------------- (878) 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(x0), 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(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (879) 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) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) ---------------------------------------- (880) 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(x0), 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(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (881) 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(x0), 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))))) ---------------------------------------- (882) 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(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (883) 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)))) ---------------------------------------- (884) 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(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (885) 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(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (886) 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_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (887) 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_primMinusNatS1, 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)))) ---------------------------------------- (888) 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(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(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (889) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (890) 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(new_primMinusNatS0(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(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (891) 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(x0), 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)))) ---------------------------------------- (892) 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'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))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (893) 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(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, 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_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Zero))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(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(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0)))))) ---------------------------------------- (894) 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(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (895) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (896) 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(new_primMinusNatS0(x0), 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))) 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(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (897) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), 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)))))) ---------------------------------------- (898) 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(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(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(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (899) 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(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, 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(x0), 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(x0), Zero)))) ---------------------------------------- (900) 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(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, 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_primMinusNatS1, 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(x0), Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (901) 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_primMinusNatS1, 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)))) ---------------------------------------- (902) 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(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, 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(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(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (903) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (904) Obligation: Q DP problem: The TRS P consists of the following rules: 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(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(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (905) 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(x0), 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)))) ---------------------------------------- (906) Obligation: Q DP problem: The TRS P consists of the following rules: 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(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(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(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (907) 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(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, 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_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(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(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0))))))) ---------------------------------------- (908) 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(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(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(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (909) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (910) 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(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), 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))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (911) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), 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))))))) ---------------------------------------- (912) 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(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(vuz10100)), Pos(Zero)) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (913) 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)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'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'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'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, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) ---------------------------------------- (914) YES ---------------------------------------- (915) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (916) 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. ---------------------------------------- (917) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (918) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primMinusNatS0(x0) new_primMinusNatS1 ---------------------------------------- (919) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (920) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (921) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (922) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) ---------------------------------------- (923) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (924) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (925) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (926) 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))))) ---------------------------------------- (927) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (928) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) ---------------------------------------- (929) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (930) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (931) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (932) 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_primMinusNatS2(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)))))) ---------------------------------------- (933) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (934) 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_primMinusNatS2(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))))) ---------------------------------------- (935) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (936) 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))))) ---------------------------------------- (937) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (938) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (939) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (940) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (941) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (942) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (943) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (944) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (945) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (946) 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)))))) ---------------------------------------- (947) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (948) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (949) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (950) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (951) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (952) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (953) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (954) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (955) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (956) 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_primMinusNatS2(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))))))) ---------------------------------------- (957) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (958) 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_primMinusNatS2(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)))))) ---------------------------------------- (959) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (960) 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)))))) ---------------------------------------- (961) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (962) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (963) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (964) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (965) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (966) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (967) Complex Obligation (AND) ---------------------------------------- (968) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (969) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (970) 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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (971) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (972) 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_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (973) 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_primMinusNatS2(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))))) ---------------------------------------- (974) 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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (975) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (976) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (977) 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)))))) ---------------------------------------- (978) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (979) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) ---------------------------------------- (980) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (981) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (982) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (983) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Pos(x_1)) = 2*x_1 POL(Succ(x_1)) = 1 + x_1 POL(True) = 3 POL(Zero) = 3 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_primMinusNatS2(x_1, x_2)) = x_1 POL(new_primModNatS01(x_1, x_2)) = 1 + x_1 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 2 + x_1 POL(new_primModNatS1(x_1, x_2)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) ---------------------------------------- (984) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (985) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. ---------------------------------------- (986) TRUE ---------------------------------------- (987) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (988) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (989) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (990) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (991) Complex Obligation (AND) ---------------------------------------- (992) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (993) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (994) 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_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (995) 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_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'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_primMinusNatS2(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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (996) 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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (997) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (998) 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_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (999) 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_primMinusNatS2(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)))))) ---------------------------------------- (1000) 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(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1001) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Pos(x_1)) = 2*x_1 POL(Succ(x_1)) = 1 + x_1 POL(True) = 3 POL(Zero) = 0 POL(new_gcd0Gcd'0(x_1, x_2)) = 2 + x_1 + x_2 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = 2 + x_2 + x_3 POL(new_primEqInt(x_1, x_2)) = 0 POL(new_primMinusNatS2(x_1, x_2)) = x_1 POL(new_primModNatS01(x_1, x_2)) = 2 + x_1 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 2 + x_1 POL(new_primModNatS1(x_1, x_2)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) ---------------------------------------- (1002) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1003) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. ---------------------------------------- (1004) TRUE ---------------------------------------- (1005) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1006) 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(Neg(Succ(x0)), Neg(Zero)) 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(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) ---------------------------------------- (1007) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) We have to consider all (P,Q,R)-chains. ---------------------------------------- (1008) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2))), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x4))))), Pos(Succ(Succ(Succ(Succ(x5)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x4)), Succ(Succ(x5)), x4, x5)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x5))))), Pos(Succ(Succ(Succ(Succ(x4)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x4))))), Pos(Succ(Succ(Succ(Succ(x5)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x3))=x12 & Succ(Succ(x2))=x13 & new_primModNatS02(x12, x13, x3, x2)=Succ(Succ(Succ(Succ(x5)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x12, x13, x3, x2)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: (3) (new_primModNatS01(x16, x15)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x14)))=x16 & Succ(Succ(Zero))=x15 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) (4) (new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x18)))=x20 & Succ(Succ(Succ(x17)))=x19 & (\/x21:new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x21)))) & Succ(Succ(x18))=x20 & Succ(Succ(x17))=x19 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x17))))), Pos(Succ(Succ(Succ(Succ(x18))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x17))))), Pos(new_primModNatS02(Succ(Succ(x18)), Succ(Succ(x17)), x18, x17)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x17)))))), Pos(Succ(Succ(Succ(Succ(Succ(x18)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x17)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x18))), Succ(Succ(Succ(x17))), Succ(x18), Succ(x17))))) (5) (new_primModNatS01(x23, x22)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x23 & Succ(Succ(Zero))=x22 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (6) (Succ(Succ(x26))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x26 & Succ(Succ(Succ(x24)))=x25 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x16, x15)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x28), Succ(x27)), Succ(x27))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x14)))=x28 & Succ(Succ(Zero))=x27 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x18)))=x20 & Succ(Succ(Succ(x17)))=x19 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x17)))))), Pos(Succ(Succ(Succ(Succ(Succ(x18)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x17)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x18))), Succ(Succ(Succ(x17))), Succ(x18), Succ(x17))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x23, x22)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x47), Succ(x46)), Succ(x46))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x47 & Succ(Succ(Zero))=x46 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: (12) (new_primModNatS01(x35, x34)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x33))))=x35 & Succ(Succ(Succ(Zero)))=x34 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x33)))), Succ(Succ(Succ(Zero))), Succ(Succ(x33)), Succ(Zero))))) (13) (new_primModNatS02(x39, x38, x37, x36)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x37))))=x39 & Succ(Succ(Succ(Succ(x36))))=x38 & (\/x40:new_primModNatS02(x39, x38, x37, x36)=Succ(Succ(Succ(Succ(x40)))) & Succ(Succ(Succ(x37)))=x39 & Succ(Succ(Succ(x36)))=x38 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x36)))))), Pos(Succ(Succ(Succ(Succ(Succ(x37)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x36)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x37))), Succ(Succ(Succ(x36))), Succ(x37), Succ(x36))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x37)))), Succ(Succ(Succ(Succ(x36)))), Succ(Succ(x37)), Succ(Succ(x36)))))) (14) (new_primModNatS01(x42, x41)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x42 & Succ(Succ(Succ(Zero)))=x41 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (15) (Succ(Succ(x45))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x45 & Succ(Succ(Succ(Succ(x43))))=x44 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x33)))), Succ(Succ(Succ(Zero))), Succ(Succ(x33)), Succ(Zero))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x37)))), Succ(Succ(Succ(Succ(x36)))), Succ(Succ(x37)), Succ(Succ(x36)))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6)))))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Succ(x9)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x8))))), Pos(new_primModNatS02(Succ(Succ(x9)), Succ(Succ(x8)), x9, x8))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Succ(x9)))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7))=x52 & Pos(Zero)=x53 & new_primEqInt(x52, x53)=False ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x52, x53)=False which results in the following new constraint: (3) (False=False & Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7))=Pos(Succ(x54)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (4) (Succ(Succ(x6))=x55 & Succ(Succ(x7))=x56 & new_primModNatS02(x55, x56, x6, x7)=Succ(x54) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x55, x56, x6, x7)=Succ(x54) which results in the following new constraints: (5) (new_primModNatS01(x59, x58)=Succ(x54) & Succ(Succ(Succ(x57)))=x59 & Succ(Succ(Zero))=x58 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x57)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x57))), Succ(Succ(Zero)), Succ(x57), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x57)))))))) (6) (new_primModNatS02(x63, x62, x61, x60)=Succ(x54) & Succ(Succ(Succ(x61)))=x63 & Succ(Succ(Succ(x60)))=x62 & (\/x64:new_primModNatS02(x63, x62, x61, x60)=Succ(x64) & Succ(Succ(x61))=x63 & Succ(Succ(x60))=x62 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x61))))), Pos(Succ(Succ(Succ(Succ(x60))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x61)), Succ(Succ(x60)), x61, x60)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x60))))), Pos(Succ(Succ(Succ(Succ(x61))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x61)))))), Pos(Succ(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x61))), Succ(Succ(Succ(x60))), Succ(x61), Succ(x60))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x60)))))), Pos(Succ(Succ(Succ(Succ(Succ(x61)))))))) (7) (new_primModNatS01(x66, x65)=Succ(x54) & Succ(Succ(Zero))=x66 & Succ(Succ(Zero))=x65 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) (8) (Succ(Succ(x69))=Succ(x54) & Succ(Succ(Zero))=x69 & Succ(Succ(Succ(x67)))=x68 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x67))), Zero, Succ(x67))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x59, x58)=Succ(x54) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x71), Succ(x70)), Succ(x70))=Succ(x54) & Succ(Succ(Succ(x57)))=x71 & Succ(Succ(Zero))=x70 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x57)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x57))), Succ(Succ(Zero)), Succ(x57), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x57)))))))) We simplified constraint (6) using rule (IV) which results in the following new constraint: (10) (new_primModNatS02(x63, x62, x61, x60)=Succ(x54) & Succ(Succ(Succ(x61)))=x63 & Succ(Succ(Succ(x60)))=x62 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x61)))))), Pos(Succ(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x61))), Succ(Succ(Succ(x60))), Succ(x61), Succ(x60))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x60)))))), Pos(Succ(Succ(Succ(Succ(Succ(x61)))))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x66, x65)=Succ(x54) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS2(Succ(x90), Succ(x89)), Succ(x89))=Succ(x54) & Succ(Succ(Zero))=x90 & Succ(Succ(Zero))=x89 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (8) using rules (I), (II), (IV) which results in the following new constraint: (12) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x67))), Zero, Succ(x67))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x57)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x57))), Succ(Succ(Zero)), Succ(x57), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x57)))))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x63, x62, x61, x60)=Succ(x54) which results in the following new constraints: (14) (new_primModNatS01(x78, x77)=Succ(x54) & Succ(Succ(Succ(Succ(x76))))=x78 & Succ(Succ(Succ(Zero)))=x77 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x76))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x76)))), Succ(Succ(Succ(Zero))), Succ(Succ(x76)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x76))))))))) (15) (new_primModNatS02(x82, x81, x80, x79)=Succ(x54) & Succ(Succ(Succ(Succ(x80))))=x82 & Succ(Succ(Succ(Succ(x79))))=x81 & (\/x83:new_primModNatS02(x82, x81, x80, x79)=Succ(x83) & Succ(Succ(Succ(x80)))=x82 & Succ(Succ(Succ(x79)))=x81 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x80)))))), Pos(Succ(Succ(Succ(Succ(Succ(x79)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x80))), Succ(Succ(Succ(x79))), Succ(x80), Succ(x79))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x79)))))), Pos(Succ(Succ(Succ(Succ(Succ(x80)))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x80)))), Succ(Succ(Succ(Succ(x79)))), Succ(Succ(x80)), Succ(Succ(x79)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))) (16) (new_primModNatS01(x85, x84)=Succ(x54) & Succ(Succ(Succ(Zero)))=x85 & Succ(Succ(Succ(Zero)))=x84 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) (17) (Succ(Succ(x88))=Succ(x54) & Succ(Succ(Succ(Zero)))=x88 & Succ(Succ(Succ(Succ(x86))))=x87 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x86)))), Succ(Zero), Succ(Succ(x86)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x76))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x76)))), Succ(Succ(Succ(Zero))), Succ(Succ(x76)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x76))))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x80)))), Succ(Succ(Succ(Succ(x79)))), Succ(Succ(x80)), Succ(Succ(x79)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (17) using rules (I), (II), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x86)))), Succ(Zero), Succ(Succ(x86)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (22) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x33)))), Succ(Succ(Succ(Zero))), Succ(Succ(x33)), Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x37)))), Succ(Succ(Succ(Succ(x36)))), Succ(Succ(x37)), Succ(Succ(x36)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x86)))), Succ(Zero), Succ(Succ(x86)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x67))), Zero, Succ(x67))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x57)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x57))), Succ(Succ(Zero)), Succ(x57), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x57)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x76))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x76)))), Succ(Succ(Succ(Zero))), Succ(Succ(x76)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x76))))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x80)))), Succ(Succ(Succ(Succ(x79)))), Succ(Succ(x80)), Succ(Succ(x79)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (1009) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1010) 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(vuz900), Neg(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Succ(vuz11600))) -> Pos(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Neg(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz900), Neg(Succ(vuz11600))) -> Neg(new_primModNatS1(vuz900, vuz11600)) new_primRemInt(Pos(vuz900), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz900), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1011) 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. ---------------------------------------- (1012) 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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1013) 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(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_error new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) ---------------------------------------- (1014) 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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1015) 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(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (1016) 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(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1017) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1018) 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(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1019) 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(x0), 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)))) ---------------------------------------- (1020) 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_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1021) 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_primMinusNatS1, 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)))) ---------------------------------------- (1022) 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(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) 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_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1025) 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(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(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(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0))))) (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, 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_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0))))) ---------------------------------------- (1026) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(Zero)) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1027) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (1028) 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(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(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1029) 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)))) ---------------------------------------- (1030) 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(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(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1031) 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(x0), 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))))) ---------------------------------------- (1032) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1033) 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(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(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(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0))))) (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, 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_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0))))) ---------------------------------------- (1034) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(Zero)) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1035) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1036) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), 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_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1037) 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(x0), 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))))) ---------------------------------------- (1038) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1039) 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)))) ---------------------------------------- (1040) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1041) 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_primMinusNatS1, 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)))) ---------------------------------------- (1042) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1043) 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)))) ---------------------------------------- (1044) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1045) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1046) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1047) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (1048) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1049) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (1050) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1051) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (1052) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1053) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (1054) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1055) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Zero, Zero), Succ(Zero))))) ---------------------------------------- (1056) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1057) 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_primMinusNatS2(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))))) ---------------------------------------- (1058) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1059) 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_primMinusNatS2(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))))) ---------------------------------------- (1060) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1061) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1062) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1063) 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(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (1064) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(x0)), Neg(Zero)) -> new_gcd0Gcd'0(Pos(Succ(x0)), Neg(Zero)) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1065) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 2 less nodes. ---------------------------------------- (1066) Complex Obligation (AND) ---------------------------------------- (1067) 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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1068) 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. ---------------------------------------- (1069) 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), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1070) 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) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) ---------------------------------------- (1071) 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), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1072) 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(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (1073) 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_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1074) 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_primMinusNatS1, 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)))) ---------------------------------------- (1075) 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(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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1076) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1077) 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(new_primMinusNatS0(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), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1078) 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(x0), 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)))) ---------------------------------------- (1079) 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'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(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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1080) 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(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, 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_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Zero))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(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(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0)))))) ---------------------------------------- (1081) 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(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, 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(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1082) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1083) 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(x0), 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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1084) 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(x0), 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)))))) ---------------------------------------- (1085) 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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1086) 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(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, 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(x0), 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(x0), Zero)))) ---------------------------------------- (1087) 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_primMinusNatS1, 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(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1088) 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_primMinusNatS1, 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)))) ---------------------------------------- (1089) 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(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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1090) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1091) 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(new_primMinusNatS0(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), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1092) 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(x0), 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)))) ---------------------------------------- (1093) 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'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(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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1094) 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(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, 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_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(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(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0))))))) ---------------------------------------- (1095) 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(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, 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(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1096) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1097) 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(x0), 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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1098) 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(x0), 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))))))) ---------------------------------------- (1099) 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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1100) 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)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'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, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) ---------------------------------------- (1101) YES ---------------------------------------- (1102) 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(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))) 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(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1103) 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. ---------------------------------------- (1104) 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(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))) 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), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1105) 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) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) ---------------------------------------- (1106) 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(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))) 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), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1107) 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(x0), 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)))) ---------------------------------------- (1108) 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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1109) 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(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, 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_primMinusNatS1, 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(new_primMinusNatS0(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(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0)))))) ---------------------------------------- (1110) 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_primMinusNatS1, 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(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1111) 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_primMinusNatS1, 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))))) ---------------------------------------- (1112) 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(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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1113) 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(x0), 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)))))) ---------------------------------------- (1114) 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(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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1115) 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))))) ---------------------------------------- (1116) 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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1117) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1118) 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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1119) 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(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, 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_primMinusNatS1, 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(new_primMinusNatS0(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(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0))))))) ---------------------------------------- (1120) 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_primMinusNatS1, 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(new_primMinusNatS0(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1121) 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_primMinusNatS1, 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)))))) ---------------------------------------- (1122) 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(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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1123) 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(x0), 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))))))) ---------------------------------------- (1124) 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(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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1125) 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)))))) ---------------------------------------- (1126) 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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1127) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1128) 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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1129) 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(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (1130) 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(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1131) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1132) 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(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))) 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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1133) 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(x0), 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)))) ---------------------------------------- (1134) 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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1135) 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(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, 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(x0), 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(x0), Zero)))) ---------------------------------------- (1136) 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(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, 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(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1137) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1138) 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(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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1139) 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(x0), 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)))) ---------------------------------------- (1140) 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(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS1 -> Zero new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1141) 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)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'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, vuz11600) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz18000) -> Succ(vuz18000) ---------------------------------------- (1142) YES ---------------------------------------- (1143) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primModNatS1(Succ(Succ(vuz90000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz90000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primMinusNatS0(vuz18000) -> Succ(vuz18000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1144) 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. ---------------------------------------- (1145) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNatS1 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1146) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primMinusNatS0(x0) new_primMinusNatS1 ---------------------------------------- (1147) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1148) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1149) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1150) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (1151) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1152) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (1153) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1154) 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_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'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_primMinusNatS2(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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (1155) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1156) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (1157) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1158) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (1159) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1160) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))))) ---------------------------------------- (1161) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1162) 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_primMinusNatS2(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)))))) ---------------------------------------- (1163) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1164) 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_primMinusNatS2(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)))))) ---------------------------------------- (1165) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1166) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1167) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1168) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (1169) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1170) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (1171) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1172) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (1173) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1174) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (1175) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1176) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Zero, Zero), Succ(Zero))))) ---------------------------------------- (1177) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1178) 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_primMinusNatS2(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))))) ---------------------------------------- (1179) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1180) 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_primMinusNatS2(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))))) ---------------------------------------- (1181) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1182) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1183) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1184) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (1185) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1186) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1187) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1188) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) ---------------------------------------- (1189) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1190) 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))))) ---------------------------------------- (1191) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1192) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) ---------------------------------------- (1193) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1194) 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_primMinusNatS2(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)))))) ---------------------------------------- (1195) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1196) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero)))) ---------------------------------------- (1197) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1198) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1199) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1200) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0))))))) ---------------------------------------- (1201) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1202) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1203) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1204) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (1205) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1206) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. ---------------------------------------- (1207) Complex Obligation (AND) ---------------------------------------- (1208) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1209) 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. ---------------------------------------- (1210) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1211) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) ---------------------------------------- (1212) 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_primMinusNatS2(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1213) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) ---------------------------------------- (1214) 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_primMinusNatS2(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1215) 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_primMinusNatS2(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)))))) ---------------------------------------- (1216) 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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1217) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero)))) ---------------------------------------- (1218) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1219) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1220) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1221) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0))))))) ---------------------------------------- (1222) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) 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_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1225) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1)))))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x2, Zero, x2, Zero))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x2)))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS02(x1, Zero, x1, Zero))=x20 & Pos(Zero)=x21 & new_primEqInt(x20, x21)=False ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x20, x21)=False which results in the following new constraint: (3) (False=False & Pos(new_primModNatS02(x1, Zero, x1, Zero))=Pos(Succ(x22)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (4) (Zero=x23 & x1=x24 & Zero=x25 & new_primModNatS02(x1, x23, x24, x25)=Succ(x22) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1, x23, x24, x25)=Succ(x22) which results in the following new constraints: (5) (new_primModNatS01(x28, x27)=Succ(x22) & Zero=x27 & x28=Succ(x26) & Zero=Zero ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x28))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x28, Zero, x28, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x28))))))) (6) (new_primModNatS02(x32, x31, x30, x29)=Succ(x22) & Zero=x31 & x32=Succ(x30) & Zero=Succ(x29) & (\/x33:new_primModNatS02(x32, x31, x30, x29)=Succ(x33) & Zero=x31 & x32=x30 & Zero=x29 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x32))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x32, Zero, x32, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x32))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x32))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x32, Zero, x32, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x32))))))) (7) (new_primModNatS01(x35, x34)=Succ(x22) & Zero=x34 & x35=Zero & Zero=Zero ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x35))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x35, Zero, x35, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x35))))))) (8) (Succ(Succ(x38))=Succ(x22) & Zero=x37 & x38=Zero & Zero=Succ(x36) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x38))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x38, Zero, x38, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x38))))))) We simplified constraint (5) using rules (I), (II), (III), (VII) which results in the following new constraint: (9) (Succ(x26)=x39 & new_primModNatS01(x39, x27)=Succ(x22) & Zero=x27 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x26)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x26), Zero, Succ(x26), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x26)))))))) We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rules (I), (II), (III), (VII) which results in the following new constraint: (10) (Zero=x46 & new_primModNatS01(x46, x34)=Succ(x22) & Zero=x34 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x39, x27)=Succ(x22) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS2(Succ(x41), Succ(x40)), Succ(x40))=Succ(x22) & Succ(x26)=x41 & Zero=x40 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x26)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x26), Zero, Succ(x26), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x26)))))))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (12) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x26)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x26), Zero, Succ(x26), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x26)))))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x46, x34)=Succ(x22) which results in the following new constraint: (13) (new_primModNatS1(new_primMinusNatS2(Succ(x48), Succ(x47)), Succ(x47))=Succ(x22) & Zero=x48 & Zero=x47 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (13) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x7)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x7, Zero, x7, Zero))), new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x8))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x8)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x7, Zero, x7, Zero)))=new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x8))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x7, Zero, x7, Zero)))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (2) (Zero=x53 & x7=x54 & Zero=x55 & new_primModNatS02(x7, x53, x54, x55)=Succ(Succ(Succ(x8))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x7, Zero, x7, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x7, x53, x54, x55)=Succ(Succ(Succ(x8))) which results in the following new constraints: (3) (new_primModNatS01(x58, x57)=Succ(Succ(Succ(x8))) & Zero=x57 & x58=Succ(x56) & Zero=Zero ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x58))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x58, Zero, x58, Zero)))) (4) (new_primModNatS02(x62, x61, x60, x59)=Succ(Succ(Succ(x8))) & Zero=x61 & x62=Succ(x60) & Zero=Succ(x59) & (\/x63:new_primModNatS02(x62, x61, x60, x59)=Succ(Succ(Succ(x63))) & Zero=x61 & x62=x60 & Zero=x59 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x62))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x62, Zero, x62, Zero)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x62))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x62, Zero, x62, Zero)))) (5) (new_primModNatS01(x65, x64)=Succ(Succ(Succ(x8))) & Zero=x64 & x65=Zero & Zero=Zero ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x65))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x65, Zero, x65, Zero)))) (6) (Succ(Succ(x68))=Succ(Succ(Succ(x8))) & Zero=x67 & x68=Zero & Zero=Succ(x66) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x68))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x68, Zero, x68, Zero)))) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (7) (Succ(x56)=x69 & new_primModNatS01(x69, x57)=Succ(Succ(Succ(x8))) & Zero=x57 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x56)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x56), Zero, Succ(x56), Zero)))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (Zero=x76 & new_primModNatS01(x76, x64)=Succ(Succ(Succ(x8))) & Zero=x64 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x69, x57)=Succ(Succ(Succ(x8))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x71), Succ(x70)), Succ(x70))=Succ(Succ(Succ(x8))) & Succ(x56)=x71 & Zero=x70 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x56)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x56), Zero, Succ(x56), Zero)))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x56)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x56), Zero, Succ(x56), Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x76, x64)=Succ(Succ(Succ(x8))) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS2(Succ(x78), Succ(x77)), Succ(x77))=Succ(Succ(Succ(x8))) & Zero=x78 & Zero=x77 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (12) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x13))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero)))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x14)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x14)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x14)))), Neg(Succ(Succ(Zero)))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x13)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x13)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero))))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero)))), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x16, Zero, x16, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x16)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero))))=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x26)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x26), Zero, Succ(x26), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x26)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x56)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x56), Zero, Succ(x56), Zero)))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) *new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x13)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero))))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (1226) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1227) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1228) 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. ---------------------------------------- (1229) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1230) 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))))) ---------------------------------------- (1231) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1232) 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. ---------------------------------------- (1233) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1234) 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))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Neg(x_1)) = 2*x_1 POL(Pos(x_1)) = 0 POL(Succ(x_1)) = 1 + x_1 POL(True) = 3 POL(Zero) = 0 POL(new_gcd0Gcd'0(x_1, x_2)) = 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_primMinusNatS2(x_1, x_2)) = x_1 POL(new_primModNatS01(x_1, x_2)) = 1 + x_1 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 2 + x_1 POL(new_primModNatS1(x_1, x_2)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) ---------------------------------------- (1235) 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(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1236) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. ---------------------------------------- (1237) TRUE ---------------------------------------- (1238) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1239) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1240) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1241) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (1242) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1243) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1244) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1245) 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)))))) ---------------------------------------- (1246) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1247) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (1248) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1249) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1250) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1251) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (1252) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1253) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1254) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1255) 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_primMinusNatS2(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))))))) ---------------------------------------- (1256) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1257) 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_primMinusNatS2(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)))))) ---------------------------------------- (1258) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1259) 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)))))) ---------------------------------------- (1260) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1261) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1262) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1263) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1264) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1265) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1266) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1267) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (1268) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1269) 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)))))) ---------------------------------------- (1270) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1271) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (1272) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1273) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (1274) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1275) 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_primMinusNatS2(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))))))) ---------------------------------------- (1276) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1277) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1278) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1279) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. ---------------------------------------- (1280) Complex Obligation (AND) ---------------------------------------- (1281) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1282) 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. ---------------------------------------- (1283) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1284) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(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_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (1285) 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_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1286) 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_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'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_primMinusNatS2(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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (1287) 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_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1288) 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_primMinusNatS2(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_primMinusNatS2(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_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (1289) 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_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1290) 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_primMinusNatS2(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)))))) ---------------------------------------- (1291) 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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1292) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x8)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13)))))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x14)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x14), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x14)))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero))))=x20 & Pos(Zero)=x21 & new_primEqInt(x20, x21)=False ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x20, x21)=False which results in the following new constraint: (3) (False=False & Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero))))=Neg(Succ(x23)) & Pos(Zero)=Pos(x22) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (4) (Succ(x13)=x24 & Succ(Succ(Zero))=x25 & new_primModNatS1(x24, x25)=Succ(x23) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x24, x25)=Succ(x23) which results in the following new constraints: (5) (Succ(Zero)=Succ(x23) & Succ(x13)=Succ(Zero) & Succ(Succ(Zero))=Succ(x26) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) (6) (new_primModNatS02(x28, x27, x28, x27)=Succ(x23) & Succ(x13)=Succ(Succ(x28)) & Succ(Succ(Zero))=Succ(x27) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (5) using rules (I), (II), (III), (IV) which results in the following new constraint: (7) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (x28=x30 & x27=x31 & new_primModNatS02(x28, x27, x30, x31)=Succ(x23) & Succ(Zero)=x27 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x28)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x28)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x28)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x28, x27, x30, x31)=Succ(x23) which results in the following new constraints: (9) (new_primModNatS01(x34, x33)=Succ(x23) & x34=Succ(x32) & x33=Zero & Succ(Zero)=x33 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x34)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x34)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x34)))))))) (10) (new_primModNatS02(x38, x37, x36, x35)=Succ(x23) & x38=Succ(x36) & x37=Succ(x35) & Succ(Zero)=x37 & (\/x39:new_primModNatS02(x38, x37, x36, x35)=Succ(x39) & x38=x36 & x37=x35 & Succ(Zero)=x37 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x38)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x38)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x38)))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x38)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x38)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x38)))))))) (11) (new_primModNatS01(x41, x40)=Succ(x23) & x41=Zero & x40=Zero & Succ(Zero)=x40 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x41)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x41)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x41)))))))) (12) (Succ(Succ(x44))=Succ(x23) & x44=Zero & x43=Succ(x42) & Succ(Zero)=x43 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x44)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x44)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x44)))))))) We solved constraint (9) using rules (I), (II), (III).We simplified constraint (10) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x36))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))))) We solved constraint (11) using rules (I), (II), (III).We simplified constraint (12) using rules (I), (II), (III), (IV) which results in the following new constraint: (14) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero))))), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x16)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x16))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x16)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (2) (Succ(x15)=x47 & Succ(Succ(Zero))=x48 & new_primModNatS1(x47, x48)=Succ(Succ(Succ(Succ(x16)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x47, x48)=Succ(Succ(Succ(Succ(x16)))) which results in the following new constraints: (3) (Succ(Zero)=Succ(Succ(Succ(Succ(x16)))) & Succ(x15)=Succ(Zero) & Succ(Succ(Zero))=Succ(x49) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) (4) (new_primModNatS02(x51, x50, x51, x50)=Succ(Succ(Succ(Succ(x16)))) & Succ(x15)=Succ(Succ(x51)) & Succ(Succ(Zero))=Succ(x50) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (III), (VII) which results in the following new constraint: (5) (x51=x53 & x50=x54 & new_primModNatS02(x51, x50, x53, x54)=Succ(Succ(Succ(Succ(x16)))) & Succ(Zero)=x50 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x51)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x51)), Succ(Succ(Zero)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x51, x50, x53, x54)=Succ(Succ(Succ(Succ(x16)))) which results in the following new constraints: (6) (new_primModNatS01(x57, x56)=Succ(Succ(Succ(Succ(x16)))) & x57=Succ(x55) & x56=Zero & Succ(Zero)=x56 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x57)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x57)), Succ(Succ(Zero)))))) (7) (new_primModNatS02(x61, x60, x59, x58)=Succ(Succ(Succ(Succ(x16)))) & x61=Succ(x59) & x60=Succ(x58) & Succ(Zero)=x60 & (\/x62:new_primModNatS02(x61, x60, x59, x58)=Succ(Succ(Succ(Succ(x62)))) & x61=x59 & x60=x58 & Succ(Zero)=x60 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x61)), Succ(Succ(Zero)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x61)), Succ(Succ(Zero)))))) (8) (new_primModNatS01(x64, x63)=Succ(Succ(Succ(Succ(x16)))) & x64=Zero & x63=Zero & Succ(Zero)=x63 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x64)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x64)), Succ(Succ(Zero)))))) (9) (Succ(Succ(x67))=Succ(Succ(Succ(Succ(x16)))) & x67=Zero & x66=Succ(x65) & Succ(Zero)=x66 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x67)), Succ(Succ(Zero)))))) We solved constraint (6) using rules (I), (II), (III).We simplified constraint (7) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x59))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x59))), Succ(Succ(Zero)))))) We solved constraint (8) using rules (I), (II), (III).We solved constraint (9) using rules (I), (II), (III), (IV). To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x36))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x59))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x59))), Succ(Succ(Zero)))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (1293) 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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1294) 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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1295) 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. ---------------------------------------- (1296) 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(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1297) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Neg(x_1)) = x_1 POL(Pos(x_1)) = 2*x_1 POL(Succ(x_1)) = 1 + x_1 POL(True) = 3 POL(Zero) = 0 POL(new_gcd0Gcd'0(x_1, x_2)) = 2 + x_1 + x_2 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = 2 + x_2 + x_3 POL(new_primEqInt(x_1, x_2)) = 0 POL(new_primMinusNatS2(x_1, x_2)) = x_1 POL(new_primModNatS01(x_1, x_2)) = 1 + x_1 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 2 + x_1 POL(new_primModNatS1(x_1, x_2)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) ---------------------------------------- (1298) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1299) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. ---------------------------------------- (1300) TRUE ---------------------------------------- (1301) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1302) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2))), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x4))))), Neg(Succ(Succ(Succ(Succ(x5)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x4)), Succ(Succ(x5)), x4, x5)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x5))))), Pos(Succ(Succ(Succ(Succ(x4)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x4))))), Neg(Succ(Succ(Succ(Succ(x5)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x3))=x40 & Succ(Succ(x2))=x41 & new_primModNatS02(x40, x41, x3, x2)=Succ(Succ(Succ(Succ(x5)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x40, x41, x3, x2)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: (3) (new_primModNatS01(x44, x43)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x42)))=x44 & Succ(Succ(Zero))=x43 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x42)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x42))), Succ(Succ(Zero)), Succ(x42), Zero)))) (4) (new_primModNatS02(x48, x47, x46, x45)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x46)))=x48 & Succ(Succ(Succ(x45)))=x47 & (\/x49:new_primModNatS02(x48, x47, x46, x45)=Succ(Succ(Succ(Succ(x49)))) & Succ(Succ(x46))=x48 & Succ(Succ(x45))=x47 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x45))))), Neg(Succ(Succ(Succ(Succ(x46))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x45))))), Neg(new_primModNatS02(Succ(Succ(x46)), Succ(Succ(x45)), x46, x45)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x45)))))), Neg(Succ(Succ(Succ(Succ(Succ(x46)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x45)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x46))), Succ(Succ(Succ(x45))), Succ(x46), Succ(x45))))) (5) (new_primModNatS01(x51, x50)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x51 & Succ(Succ(Zero))=x50 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (6) (Succ(Succ(x54))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x54 & Succ(Succ(Succ(x52)))=x53 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x52))), Zero, Succ(x52))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x44, x43)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x56), Succ(x55)), Succ(x55))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x42)))=x56 & Succ(Succ(Zero))=x55 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x42)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x42))), Succ(Succ(Zero)), Succ(x42), Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS02(x48, x47, x46, x45)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x46)))=x48 & Succ(Succ(Succ(x45)))=x47 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x45)))))), Neg(Succ(Succ(Succ(Succ(Succ(x46)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x45)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x46))), Succ(Succ(Succ(x45))), Succ(x46), Succ(x45))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x51, x50)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x75), Succ(x74)), Succ(x74))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x75 & Succ(Succ(Zero))=x74 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x52))), Zero, Succ(x52))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x42)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x42))), Succ(Succ(Zero)), Succ(x42), Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x48, x47, x46, x45)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: (12) (new_primModNatS01(x63, x62)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x61))))=x63 & Succ(Succ(Succ(Zero)))=x62 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x61))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x61)))), Succ(Succ(Succ(Zero))), Succ(Succ(x61)), Succ(Zero))))) (13) (new_primModNatS02(x67, x66, x65, x64)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x65))))=x67 & Succ(Succ(Succ(Succ(x64))))=x66 & (\/x68:new_primModNatS02(x67, x66, x65, x64)=Succ(Succ(Succ(Succ(x68)))) & Succ(Succ(Succ(x65)))=x67 & Succ(Succ(Succ(x64)))=x66 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x64)))))), Neg(Succ(Succ(Succ(Succ(Succ(x65)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x64)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x65))), Succ(Succ(Succ(x64))), Succ(x65), Succ(x64))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x65))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x65)))), Succ(Succ(Succ(Succ(x64)))), Succ(Succ(x65)), Succ(Succ(x64)))))) (14) (new_primModNatS01(x70, x69)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x70 & Succ(Succ(Succ(Zero)))=x69 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (15) (Succ(Succ(x73))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x73 & Succ(Succ(Succ(Succ(x71))))=x72 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x71)))), Succ(Zero), Succ(Succ(x71)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x61))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x61)))), Succ(Succ(Succ(Zero))), Succ(Succ(x61)), Succ(Zero))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x65))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x65)))), Succ(Succ(Succ(Succ(x64)))), Succ(Succ(x65)), Succ(Succ(x64)))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x71)))), Succ(Zero), Succ(Succ(x71)))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14)))))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x16))))), Pos(Succ(Succ(Succ(Succ(x17)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x16))))), Pos(new_primModNatS02(Succ(Succ(x17)), Succ(Succ(x16)), x17, x16))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x16))))), Pos(Succ(Succ(Succ(Succ(x17)))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15))=x80 & Pos(Zero)=x81 & new_primEqInt(x80, x81)=False ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x80, x81)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15))=Pos(Succ(x82)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) (4) (False=False & Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15))=Neg(Succ(x84)) & Pos(Zero)=Pos(x83) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (5) (Succ(Succ(x14))=x85 & Succ(Succ(x15))=x86 & new_primModNatS02(x85, x86, x14, x15)=Succ(x82) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x85, x86, x14, x15)=Succ(x82) which results in the following new constraints: (6) (new_primModNatS01(x89, x88)=Succ(x82) & Succ(Succ(Succ(x87)))=x89 & Succ(Succ(Zero))=x88 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x87)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x87))), Succ(Succ(Zero)), Succ(x87), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x87)))))))) (7) (new_primModNatS02(x93, x92, x91, x90)=Succ(x82) & Succ(Succ(Succ(x91)))=x93 & Succ(Succ(Succ(x90)))=x92 & (\/x94:new_primModNatS02(x93, x92, x91, x90)=Succ(x94) & Succ(Succ(x91))=x93 & Succ(Succ(x90))=x92 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x91))))), Neg(Succ(Succ(Succ(Succ(x90))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x91)), Succ(Succ(x90)), x91, x90)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x90))))), Pos(Succ(Succ(Succ(Succ(x91))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x91)))))), Neg(Succ(Succ(Succ(Succ(Succ(x90)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x91))), Succ(Succ(Succ(x90))), Succ(x91), Succ(x90))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x90)))))), Pos(Succ(Succ(Succ(Succ(Succ(x91)))))))) (8) (new_primModNatS01(x96, x95)=Succ(x82) & Succ(Succ(Zero))=x96 & Succ(Succ(Zero))=x95 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) (9) (Succ(Succ(x99))=Succ(x82) & Succ(Succ(Zero))=x99 & Succ(Succ(Succ(x97)))=x98 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x97))), Zero, Succ(x97))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x89, x88)=Succ(x82) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS2(Succ(x101), Succ(x100)), Succ(x100))=Succ(x82) & Succ(Succ(Succ(x87)))=x101 & Succ(Succ(Zero))=x100 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x87)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x87))), Succ(Succ(Zero)), Succ(x87), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x87)))))))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS02(x93, x92, x91, x90)=Succ(x82) & Succ(Succ(Succ(x91)))=x93 & Succ(Succ(Succ(x90)))=x92 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x91)))))), Neg(Succ(Succ(Succ(Succ(Succ(x90)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x91))), Succ(Succ(Succ(x90))), Succ(x91), Succ(x90))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x90)))))), Pos(Succ(Succ(Succ(Succ(Succ(x91)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x96, x95)=Succ(x82) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS2(Succ(x120), Succ(x119)), Succ(x119))=Succ(x82) & Succ(Succ(Zero))=x120 & Succ(Succ(Zero))=x119 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x97))), Zero, Succ(x97))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x87)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x87))), Succ(Succ(Zero)), Succ(x87), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x87)))))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x93, x92, x91, x90)=Succ(x82) which results in the following new constraints: (15) (new_primModNatS01(x108, x107)=Succ(x82) & Succ(Succ(Succ(Succ(x106))))=x108 & Succ(Succ(Succ(Zero)))=x107 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x106))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x106)))), Succ(Succ(Succ(Zero))), Succ(Succ(x106)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x106))))))))) (16) (new_primModNatS02(x112, x111, x110, x109)=Succ(x82) & Succ(Succ(Succ(Succ(x110))))=x112 & Succ(Succ(Succ(Succ(x109))))=x111 & (\/x113:new_primModNatS02(x112, x111, x110, x109)=Succ(x113) & Succ(Succ(Succ(x110)))=x112 & Succ(Succ(Succ(x109)))=x111 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x110)))))), Neg(Succ(Succ(Succ(Succ(Succ(x109)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x110))), Succ(Succ(Succ(x109))), Succ(x110), Succ(x109))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x109)))))), Pos(Succ(Succ(Succ(Succ(Succ(x110)))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x110))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x110)))), Succ(Succ(Succ(Succ(x109)))), Succ(Succ(x110)), Succ(Succ(x109)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x110))))))))) (17) (new_primModNatS01(x115, x114)=Succ(x82) & Succ(Succ(Succ(Zero)))=x115 & Succ(Succ(Succ(Zero)))=x114 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) (18) (Succ(Succ(x118))=Succ(x82) & Succ(Succ(Succ(Zero)))=x118 & Succ(Succ(Succ(Succ(x116))))=x117 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x116)))), Succ(Zero), Succ(Succ(x116)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x106))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x106)))), Succ(Succ(Succ(Zero))), Succ(Succ(x106)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x106))))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x110))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x110)))), Succ(Succ(Succ(Succ(x109)))), Succ(Succ(x110)), Succ(Succ(x109)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x110))))))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x116)))), Succ(Zero), Succ(Succ(x116)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x26))))), Pos(Succ(Succ(Succ(Succ(x27)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x26))))), Pos(new_primModNatS02(Succ(Succ(x27)), Succ(Succ(x26)), x27, x26))), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x28))))), Pos(Succ(Succ(Succ(Succ(x29)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x28)), Succ(Succ(x29)), x28, x29)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x29))))), Neg(Succ(Succ(Succ(Succ(x28)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x26))))), Pos(new_primModNatS02(Succ(Succ(x27)), Succ(Succ(x26)), x27, x26)))=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x28))))), Pos(Succ(Succ(Succ(Succ(x29)))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x26))))), Pos(Succ(Succ(Succ(Succ(x27))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x26))))), Pos(new_primModNatS02(Succ(Succ(x27)), Succ(Succ(x26)), x27, x26)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x27))=x125 & Succ(Succ(x26))=x126 & new_primModNatS02(x125, x126, x27, x26)=Succ(Succ(Succ(Succ(x29)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x26))))), Pos(Succ(Succ(Succ(Succ(x27))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x26))))), Pos(new_primModNatS02(Succ(Succ(x27)), Succ(Succ(x26)), x27, x26)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x125, x126, x27, x26)=Succ(Succ(Succ(Succ(x29)))) which results in the following new constraints: (3) (new_primModNatS01(x129, x128)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(x127)))=x129 & Succ(Succ(Zero))=x128 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x127)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x127))), Succ(Succ(Zero)), Succ(x127), Zero)))) (4) (new_primModNatS02(x133, x132, x131, x130)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(x131)))=x133 & Succ(Succ(Succ(x130)))=x132 & (\/x134:new_primModNatS02(x133, x132, x131, x130)=Succ(Succ(Succ(Succ(x134)))) & Succ(Succ(x131))=x133 & Succ(Succ(x130))=x132 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x130))))), Pos(Succ(Succ(Succ(Succ(x131))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x130))))), Pos(new_primModNatS02(Succ(Succ(x131)), Succ(Succ(x130)), x131, x130)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x130)))))), Pos(Succ(Succ(Succ(Succ(Succ(x131)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x130)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x131))), Succ(Succ(Succ(x130))), Succ(x131), Succ(x130))))) (5) (new_primModNatS01(x136, x135)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Zero))=x136 & Succ(Succ(Zero))=x135 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (6) (Succ(Succ(x139))=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Zero))=x139 & Succ(Succ(Succ(x137)))=x138 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x137))), Zero, Succ(x137))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x129, x128)=Succ(Succ(Succ(Succ(x29)))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x141), Succ(x140)), Succ(x140))=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(x127)))=x141 & Succ(Succ(Zero))=x140 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x127)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x127))), Succ(Succ(Zero)), Succ(x127), Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS02(x133, x132, x131, x130)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(x131)))=x133 & Succ(Succ(Succ(x130)))=x132 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x130)))))), Pos(Succ(Succ(Succ(Succ(Succ(x131)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x130)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x131))), Succ(Succ(Succ(x130))), Succ(x131), Succ(x130))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x136, x135)=Succ(Succ(Succ(Succ(x29)))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x160), Succ(x159)), Succ(x159))=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Zero))=x160 & Succ(Succ(Zero))=x159 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x137))), Zero, Succ(x137))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x127)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x127))), Succ(Succ(Zero)), Succ(x127), Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x133, x132, x131, x130)=Succ(Succ(Succ(Succ(x29)))) which results in the following new constraints: (12) (new_primModNatS01(x148, x147)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(Succ(x146))))=x148 & Succ(Succ(Succ(Zero)))=x147 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x146))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x146)))), Succ(Succ(Succ(Zero))), Succ(Succ(x146)), Succ(Zero))))) (13) (new_primModNatS02(x152, x151, x150, x149)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(Succ(x150))))=x152 & Succ(Succ(Succ(Succ(x149))))=x151 & (\/x153:new_primModNatS02(x152, x151, x150, x149)=Succ(Succ(Succ(Succ(x153)))) & Succ(Succ(Succ(x150)))=x152 & Succ(Succ(Succ(x149)))=x151 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x149)))))), Pos(Succ(Succ(Succ(Succ(Succ(x150)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x149)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x150))), Succ(Succ(Succ(x149))), Succ(x150), Succ(x149))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x150))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x150)))), Succ(Succ(Succ(Succ(x149)))), Succ(Succ(x150)), Succ(Succ(x149)))))) (14) (new_primModNatS01(x155, x154)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(Zero)))=x155 & Succ(Succ(Succ(Zero)))=x154 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (15) (Succ(Succ(x158))=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(Zero)))=x158 & Succ(Succ(Succ(Succ(x156))))=x157 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x156)))), Succ(Zero), Succ(Succ(x156)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x146))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x146)))), Succ(Succ(Succ(Zero))), Succ(Succ(x146)), Succ(Zero))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x150))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x150)))), Succ(Succ(Succ(Succ(x149)))), Succ(Succ(x150)), Succ(Succ(x149)))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x156)))), Succ(Zero), Succ(Succ(x156)))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30)))))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x32))))), Neg(Succ(Succ(Succ(Succ(x33)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x32))))), Neg(new_primModNatS02(Succ(Succ(x33)), Succ(Succ(x32)), x33, x32))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x32))))), Neg(Succ(Succ(Succ(Succ(x33)))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31))=x165 & Pos(Zero)=x166 & new_primEqInt(x165, x166)=False ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x165, x166)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31))=Pos(Succ(x167)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) (4) (False=False & Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31))=Neg(Succ(x169)) & Pos(Zero)=Pos(x168) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Succ(Succ(x30))=x170 & Succ(Succ(x31))=x171 & new_primModNatS02(x170, x171, x30, x31)=Succ(x169) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x170, x171, x30, x31)=Succ(x169) which results in the following new constraints: (6) (new_primModNatS01(x174, x173)=Succ(x169) & Succ(Succ(Succ(x172)))=x174 & Succ(Succ(Zero))=x173 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x172)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x172))), Succ(Succ(Zero)), Succ(x172), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x172)))))))) (7) (new_primModNatS02(x178, x177, x176, x175)=Succ(x169) & Succ(Succ(Succ(x176)))=x178 & Succ(Succ(Succ(x175)))=x177 & (\/x179:new_primModNatS02(x178, x177, x176, x175)=Succ(x179) & Succ(Succ(x176))=x178 & Succ(Succ(x175))=x177 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x176))))), Pos(Succ(Succ(Succ(Succ(x175))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x176)), Succ(Succ(x175)), x176, x175)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x175))))), Neg(Succ(Succ(Succ(Succ(x176))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x176)))))), Pos(Succ(Succ(Succ(Succ(Succ(x175)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x176))), Succ(Succ(Succ(x175))), Succ(x176), Succ(x175))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x175)))))), Neg(Succ(Succ(Succ(Succ(Succ(x176)))))))) (8) (new_primModNatS01(x181, x180)=Succ(x169) & Succ(Succ(Zero))=x181 & Succ(Succ(Zero))=x180 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) (9) (Succ(Succ(x184))=Succ(x169) & Succ(Succ(Zero))=x184 & Succ(Succ(Succ(x182)))=x183 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x182))), Zero, Succ(x182))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x174, x173)=Succ(x169) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS2(Succ(x186), Succ(x185)), Succ(x185))=Succ(x169) & Succ(Succ(Succ(x172)))=x186 & Succ(Succ(Zero))=x185 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x172)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x172))), Succ(Succ(Zero)), Succ(x172), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x172)))))))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS02(x178, x177, x176, x175)=Succ(x169) & Succ(Succ(Succ(x176)))=x178 & Succ(Succ(Succ(x175)))=x177 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x176)))))), Pos(Succ(Succ(Succ(Succ(Succ(x175)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x176))), Succ(Succ(Succ(x175))), Succ(x176), Succ(x175))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x175)))))), Neg(Succ(Succ(Succ(Succ(Succ(x176)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x181, x180)=Succ(x169) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS2(Succ(x205), Succ(x204)), Succ(x204))=Succ(x169) & Succ(Succ(Zero))=x205 & Succ(Succ(Zero))=x204 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x182))), Zero, Succ(x182))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x172)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x172))), Succ(Succ(Zero)), Succ(x172), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x172)))))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x178, x177, x176, x175)=Succ(x169) which results in the following new constraints: (15) (new_primModNatS01(x193, x192)=Succ(x169) & Succ(Succ(Succ(Succ(x191))))=x193 & Succ(Succ(Succ(Zero)))=x192 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x191))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x191)))), Succ(Succ(Succ(Zero))), Succ(Succ(x191)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x191))))))))) (16) (new_primModNatS02(x197, x196, x195, x194)=Succ(x169) & Succ(Succ(Succ(Succ(x195))))=x197 & Succ(Succ(Succ(Succ(x194))))=x196 & (\/x198:new_primModNatS02(x197, x196, x195, x194)=Succ(x198) & Succ(Succ(Succ(x195)))=x197 & Succ(Succ(Succ(x194)))=x196 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x195)))))), Pos(Succ(Succ(Succ(Succ(Succ(x194)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x195))), Succ(Succ(Succ(x194))), Succ(x195), Succ(x194))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x194)))))), Neg(Succ(Succ(Succ(Succ(Succ(x195)))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x195))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x195)))), Succ(Succ(Succ(Succ(x194)))), Succ(Succ(x195)), Succ(Succ(x194)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x195))))))))) (17) (new_primModNatS01(x200, x199)=Succ(x169) & Succ(Succ(Succ(Zero)))=x200 & Succ(Succ(Succ(Zero)))=x199 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) (18) (Succ(Succ(x203))=Succ(x169) & Succ(Succ(Succ(Zero)))=x203 & Succ(Succ(Succ(Succ(x201))))=x202 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x201)))), Succ(Zero), Succ(Succ(x201)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x191))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x191)))), Succ(Succ(Succ(Zero))), Succ(Succ(x191)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x191))))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x195))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x195)))), Succ(Succ(Succ(Succ(x194)))), Succ(Succ(x195)), Succ(Succ(x194)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x195))))))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x201)))), Succ(Zero), Succ(Succ(x201)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x71)))), Succ(Zero), Succ(Succ(x71)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x52))), Zero, Succ(x52))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x42)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x42))), Succ(Succ(Zero)), Succ(x42), Zero)))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x61))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x61)))), Succ(Succ(Succ(Zero))), Succ(Succ(x61)), Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x65))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x65)))), Succ(Succ(Succ(Succ(x64)))), Succ(Succ(x65)), Succ(Succ(x64)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x116)))), Succ(Zero), Succ(Succ(x116)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x97))), Zero, Succ(x97))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x87)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x87))), Succ(Succ(Zero)), Succ(x87), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x87)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x106))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x106)))), Succ(Succ(Succ(Zero))), Succ(Succ(x106)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x106))))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x110))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x110)))), Succ(Succ(Succ(Succ(x109)))), Succ(Succ(x110)), Succ(Succ(x109)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x110))))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x156)))), Succ(Zero), Succ(Succ(x156)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x137))), Zero, Succ(x137))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x127)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x127))), Succ(Succ(Zero)), Succ(x127), Zero)))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x146))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x146)))), Succ(Succ(Succ(Zero))), Succ(Succ(x146)), Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x150))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x150)))), Succ(Succ(Succ(Succ(x149)))), Succ(Succ(x150)), Succ(Succ(x149)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x201)))), Succ(Zero), Succ(Succ(x201)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x182))), Zero, Succ(x182))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x172)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x172))), Succ(Succ(Zero)), Succ(x172), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x172)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x191))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x191)))), Succ(Succ(Succ(Zero))), Succ(Succ(x191)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x191))))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x195))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x195)))), Succ(Succ(Succ(Succ(x194)))), Succ(Succ(x195)), Succ(Succ(x194)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x195))))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (1303) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz116000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz90000)), Succ(vuz116000)) -> new_primModNatS02(vuz90000, vuz116000, vuz90000, vuz116000) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS01(vuz191, vuz192) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz191), Succ(vuz192)), Succ(vuz192)) new_primModNatS02(vuz191, vuz192, Succ(vuz1930), Succ(vuz1940)) -> new_primModNatS02(vuz191, vuz192, vuz1930, vuz1940) new_primModNatS02(vuz191, vuz192, Zero, Zero) -> new_primModNatS01(vuz191, vuz192) new_primModNatS02(vuz191, vuz192, Zero, Succ(vuz1940)) -> Succ(Succ(vuz191)) new_primMinusNatS2(Succ(vuz1540), Succ(vuz1550)) -> new_primMinusNatS2(vuz1540, vuz1550) new_primModNatS1(Zero, vuz11600) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz1550)) -> Zero new_primMinusNatS2(Succ(vuz1540), Zero) -> Succ(vuz1540) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz10100)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz10100)), Pos(vuz1000)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primModNatS02(x0, x1, Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1304) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot7(vuz206, vuz207, Succ(vuz2080), Succ(vuz2090), vuz210, vuz211, vuz212) -> new_quot7(vuz206, vuz207, vuz2080, vuz2090, vuz210, vuz211, vuz212) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1305) 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_quot7(vuz206, vuz207, Succ(vuz2080), Succ(vuz2090), vuz210, vuz211, vuz212) -> new_quot7(vuz206, vuz207, vuz2080, vuz2090, vuz210, vuz211, vuz212) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4, 5 >= 5, 6 >= 6, 7 >= 7 ---------------------------------------- (1306) YES ---------------------------------------- (1307) Obligation: Q DP problem: The TRS P consists of the following rules: new_primEqNat(Succ(vuz16000), Succ(vuz47000)) -> new_primEqNat(vuz16000, vuz47000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1308) 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(vuz16000), Succ(vuz47000)) -> new_primEqNat(vuz16000, vuz47000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (1309) YES ---------------------------------------- (1310) Narrow (COMPLETE) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="(/)",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="(/) vuz3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="(/) vuz3 vuz4",fontsize=16,color="blue",shape="box"];5345[label="/ :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];4 -> 5345[label="",style="solid", color="blue", weight=9]; 5345 -> 5[label="",style="solid", color="blue", weight=3]; 5346[label="/ :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];4 -> 5346[label="",style="solid", color="blue", weight=9]; 5346 -> 6[label="",style="solid", color="blue", weight=3]; 5347[label="/ :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];4 -> 5347[label="",style="solid", color="blue", weight=9]; 5347 -> 7[label="",style="solid", color="blue", weight=3]; 5[label="(/) vuz3 vuz4",fontsize=16,color="black",shape="box"];5 -> 8[label="",style="solid", color="black", weight=3]; 6[label="(/) vuz3 vuz4",fontsize=16,color="black",shape="box"];6 -> 9[label="",style="solid", color="black", weight=3]; 7[label="(/) vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];5348[label="vuz3/vuz30 :% vuz31",fontsize=10,color="white",style="solid",shape="box"];7 -> 5348[label="",style="solid", color="burlywood", weight=9]; 5348 -> 10[label="",style="solid", color="burlywood", weight=3]; 8[label="primDivDouble vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];5349[label="vuz3/Double vuz30 vuz31",fontsize=10,color="white",style="solid",shape="box"];8 -> 5349[label="",style="solid", color="burlywood", weight=9]; 5349 -> 11[label="",style="solid", color="burlywood", weight=3]; 9[label="primDivFloat vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];5350[label="vuz3/Float vuz30 vuz31",fontsize=10,color="white",style="solid",shape="box"];9 -> 5350[label="",style="solid", color="burlywood", weight=9]; 5350 -> 12[label="",style="solid", color="burlywood", weight=3]; 10[label="(/) (vuz30 :% vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];5351[label="vuz4/vuz40 :% vuz41",fontsize=10,color="white",style="solid",shape="box"];10 -> 5351[label="",style="solid", color="burlywood", weight=9]; 5351 -> 13[label="",style="solid", color="burlywood", weight=3]; 11[label="primDivDouble (Double vuz30 vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];5352[label="vuz4/Double vuz40 vuz41",fontsize=10,color="white",style="solid",shape="box"];11 -> 5352[label="",style="solid", color="burlywood", weight=9]; 5352 -> 14[label="",style="solid", color="burlywood", weight=3]; 12[label="primDivFloat (Float vuz30 vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];5353[label="vuz4/Float vuz40 vuz41",fontsize=10,color="white",style="solid",shape="box"];12 -> 5353[label="",style="solid", color="burlywood", weight=9]; 5353 -> 15[label="",style="solid", color="burlywood", weight=3]; 13[label="(/) (vuz30 :% vuz31) (vuz40 :% vuz41)",fontsize=16,color="black",shape="box"];13 -> 16[label="",style="solid", color="black", weight=3]; 14[label="primDivDouble (Double vuz30 vuz31) (Double vuz40 vuz41)",fontsize=16,color="black",shape="box"];14 -> 17[label="",style="solid", color="black", weight=3]; 15[label="primDivFloat (Float vuz30 vuz31) (Float vuz40 vuz41)",fontsize=16,color="black",shape="box"];15 -> 18[label="",style="solid", color="black", weight=3]; 16[label="vuz30 * vuz41 % (vuz31 * vuz40)",fontsize=16,color="black",shape="box"];16 -> 19[label="",style="solid", color="black", weight=3]; 17[label="Double (vuz30 * vuz41) (vuz31 * vuz40)",fontsize=16,color="green",shape="box"];17 -> 20[label="",style="dashed", color="green", weight=3]; 17 -> 21[label="",style="dashed", color="green", weight=3]; 18[label="Float (vuz30 * vuz41) (vuz31 * vuz40)",fontsize=16,color="green",shape="box"];18 -> 22[label="",style="dashed", color="green", weight=3]; 18 -> 23[label="",style="dashed", color="green", weight=3]; 19[label="reduce (vuz30 * vuz41 * signum (vuz31 * vuz40)) (abs (vuz31 * vuz40))",fontsize=16,color="black",shape="box"];19 -> 24[label="",style="solid", color="black", weight=3]; 20[label="vuz30 * vuz41",fontsize=16,color="black",shape="triangle"];20 -> 25[label="",style="solid", color="black", weight=3]; 21 -> 20[label="",style="dashed", color="red", weight=0]; 21[label="vuz31 * vuz40",fontsize=16,color="magenta"];21 -> 26[label="",style="dashed", color="magenta", weight=3]; 21 -> 27[label="",style="dashed", color="magenta", weight=3]; 22 -> 20[label="",style="dashed", color="red", weight=0]; 22[label="vuz30 * vuz41",fontsize=16,color="magenta"];22 -> 28[label="",style="dashed", color="magenta", weight=3]; 22 -> 29[label="",style="dashed", color="magenta", weight=3]; 23 -> 20[label="",style="dashed", color="red", weight=0]; 23[label="vuz31 * vuz40",fontsize=16,color="magenta"];23 -> 30[label="",style="dashed", color="magenta", weight=3]; 23 -> 31[label="",style="dashed", color="magenta", weight=3]; 24[label="reduce2 (vuz30 * vuz41 * signum (vuz31 * vuz40)) (abs (vuz31 * vuz40))",fontsize=16,color="black",shape="box"];24 -> 32[label="",style="solid", color="black", weight=3]; 25[label="primMulInt vuz30 vuz41",fontsize=16,color="burlywood",shape="triangle"];5354[label="vuz30/Pos vuz300",fontsize=10,color="white",style="solid",shape="box"];25 -> 5354[label="",style="solid", color="burlywood", weight=9]; 5354 -> 33[label="",style="solid", color="burlywood", weight=3]; 5355[label="vuz30/Neg vuz300",fontsize=10,color="white",style="solid",shape="box"];25 -> 5355[label="",style="solid", color="burlywood", weight=9]; 5355 -> 34[label="",style="solid", color="burlywood", weight=3]; 26[label="vuz40",fontsize=16,color="green",shape="box"];27[label="vuz31",fontsize=16,color="green",shape="box"];28[label="vuz41",fontsize=16,color="green",shape="box"];29[label="vuz30",fontsize=16,color="green",shape="box"];30[label="vuz40",fontsize=16,color="green",shape="box"];31[label="vuz31",fontsize=16,color="green",shape="box"];32 -> 35[label="",style="dashed", color="red", weight=0]; 32[label="reduce2Reduce1 (vuz30 * vuz41 * signum (vuz31 * vuz40)) (abs (vuz31 * vuz40)) (vuz30 * vuz41 * signum (vuz31 * vuz40)) (abs (vuz31 * vuz40)) (abs (vuz31 * vuz40) == fromInt (Pos Zero))",fontsize=16,color="magenta"];32 -> 36[label="",style="dashed", color="magenta", weight=3]; 32 -> 37[label="",style="dashed", color="magenta", weight=3]; 32 -> 38[label="",style="dashed", color="magenta", weight=3]; 32 -> 39[label="",style="dashed", color="magenta", weight=3]; 32 -> 40[label="",style="dashed", color="magenta", weight=3]; 33[label="primMulInt (Pos vuz300) vuz41",fontsize=16,color="burlywood",shape="box"];5356[label="vuz41/Pos vuz410",fontsize=10,color="white",style="solid",shape="box"];33 -> 5356[label="",style="solid", color="burlywood", weight=9]; 5356 -> 41[label="",style="solid", color="burlywood", weight=3]; 5357[label="vuz41/Neg vuz410",fontsize=10,color="white",style="solid",shape="box"];33 -> 5357[label="",style="solid", color="burlywood", weight=9]; 5357 -> 42[label="",style="solid", color="burlywood", weight=3]; 34[label="primMulInt (Neg vuz300) vuz41",fontsize=16,color="burlywood",shape="box"];5358[label="vuz41/Pos vuz410",fontsize=10,color="white",style="solid",shape="box"];34 -> 5358[label="",style="solid", color="burlywood", weight=9]; 5358 -> 43[label="",style="solid", color="burlywood", weight=3]; 5359[label="vuz41/Neg vuz410",fontsize=10,color="white",style="solid",shape="box"];34 -> 5359[label="",style="solid", color="burlywood", weight=9]; 5359 -> 44[label="",style="solid", color="burlywood", weight=3]; 36[label="vuz30",fontsize=16,color="green",shape="box"];37[label="vuz41",fontsize=16,color="green",shape="box"];38[label="vuz40",fontsize=16,color="green",shape="box"];39[label="abs (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];5360[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];39 -> 5360[label="",style="solid", color="blue", weight=9]; 5360 -> 45[label="",style="solid", color="blue", weight=3]; 5361[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];39 -> 5361[label="",style="solid", color="blue", weight=9]; 5361 -> 46[label="",style="solid", color="blue", weight=3]; 40[label="vuz31",fontsize=16,color="green",shape="box"];35[label="reduce2Reduce1 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) vuz15",fontsize=16,color="burlywood",shape="triangle"];5362[label="vuz15/False",fontsize=10,color="white",style="solid",shape="box"];35 -> 5362[label="",style="solid", color="burlywood", weight=9]; 5362 -> 47[label="",style="solid", color="burlywood", weight=3]; 5363[label="vuz15/True",fontsize=10,color="white",style="solid",shape="box"];35 -> 5363[label="",style="solid", color="burlywood", weight=9]; 5363 -> 48[label="",style="solid", color="burlywood", weight=3]; 41[label="primMulInt (Pos vuz300) (Pos vuz410)",fontsize=16,color="black",shape="box"];41 -> 49[label="",style="solid", color="black", weight=3]; 42[label="primMulInt (Pos vuz300) (Neg vuz410)",fontsize=16,color="black",shape="box"];42 -> 50[label="",style="solid", color="black", weight=3]; 43[label="primMulInt (Neg vuz300) (Pos vuz410)",fontsize=16,color="black",shape="box"];43 -> 51[label="",style="solid", color="black", weight=3]; 44[label="primMulInt (Neg vuz300) (Neg vuz410)",fontsize=16,color="black",shape="box"];44 -> 52[label="",style="solid", color="black", weight=3]; 45[label="abs (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];45 -> 53[label="",style="solid", color="black", weight=3]; 46 -> 1690[label="",style="dashed", color="red", weight=0]; 46[label="abs (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="magenta"];46 -> 1691[label="",style="dashed", color="magenta", weight=3]; 46 -> 1692[label="",style="dashed", color="magenta", weight=3]; 47[label="reduce2Reduce1 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) False",fontsize=16,color="black",shape="box"];47 -> 56[label="",style="solid", color="black", weight=3]; 48[label="reduce2Reduce1 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) True",fontsize=16,color="black",shape="box"];48 -> 57[label="",style="solid", color="black", weight=3]; 49[label="Pos (primMulNat vuz300 vuz410)",fontsize=16,color="green",shape="box"];49 -> 58[label="",style="dashed", color="green", weight=3]; 50[label="Neg (primMulNat vuz300 vuz410)",fontsize=16,color="green",shape="box"];50 -> 59[label="",style="dashed", color="green", weight=3]; 51[label="Neg (primMulNat vuz300 vuz410)",fontsize=16,color="green",shape="box"];51 -> 60[label="",style="dashed", color="green", weight=3]; 52[label="Pos (primMulNat vuz300 vuz410)",fontsize=16,color="green",shape="box"];52 -> 61[label="",style="dashed", color="green", weight=3]; 53[label="absReal (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];53 -> 62[label="",style="solid", color="black", weight=3]; 1691 -> 338[label="",style="dashed", color="red", weight=0]; 1691[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1692 -> 123[label="",style="dashed", color="red", weight=0]; 1692[label="abs (vuz31 * vuz40)",fontsize=16,color="magenta"];1692 -> 1698[label="",style="dashed", color="magenta", weight=3]; 1690[label="vuz101 == vuz100",fontsize=16,color="black",shape="triangle"];1690 -> 1699[label="",style="solid", color="black", weight=3]; 56[label="reduce2Reduce0 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) otherwise",fontsize=16,color="black",shape="box"];56 -> 66[label="",style="solid", color="black", weight=3]; 57[label="error []",fontsize=16,color="black",shape="box"];57 -> 67[label="",style="solid", color="black", weight=3]; 58[label="primMulNat vuz300 vuz410",fontsize=16,color="burlywood",shape="triangle"];5364[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];58 -> 5364[label="",style="solid", color="burlywood", weight=9]; 5364 -> 68[label="",style="solid", color="burlywood", weight=3]; 5365[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];58 -> 5365[label="",style="solid", color="burlywood", weight=9]; 5365 -> 69[label="",style="solid", color="burlywood", weight=3]; 59 -> 58[label="",style="dashed", color="red", weight=0]; 59[label="primMulNat vuz300 vuz410",fontsize=16,color="magenta"];59 -> 70[label="",style="dashed", color="magenta", weight=3]; 60 -> 58[label="",style="dashed", color="red", weight=0]; 60[label="primMulNat vuz300 vuz410",fontsize=16,color="magenta"];60 -> 71[label="",style="dashed", color="magenta", weight=3]; 61 -> 58[label="",style="dashed", color="red", weight=0]; 61[label="primMulNat vuz300 vuz410",fontsize=16,color="magenta"];61 -> 72[label="",style="dashed", color="magenta", weight=3]; 61 -> 73[label="",style="dashed", color="magenta", weight=3]; 62[label="absReal2 (vuz31 * vuz40) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];62 -> 74[label="",style="solid", color="black", weight=3]; 338[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];338 -> 375[label="",style="solid", color="black", weight=3]; 1698 -> 20[label="",style="dashed", color="red", weight=0]; 1698[label="vuz31 * vuz40",fontsize=16,color="magenta"];1698 -> 1742[label="",style="dashed", color="magenta", weight=3]; 1698 -> 1743[label="",style="dashed", color="magenta", weight=3]; 123[label="abs vuz25",fontsize=16,color="black",shape="triangle"];123 -> 148[label="",style="solid", color="black", weight=3]; 1699[label="primEqInt vuz101 vuz100",fontsize=16,color="burlywood",shape="triangle"];5366[label="vuz101/Pos vuz1010",fontsize=10,color="white",style="solid",shape="box"];1699 -> 5366[label="",style="solid", color="burlywood", weight=9]; 5366 -> 1744[label="",style="solid", color="burlywood", weight=3]; 5367[label="vuz101/Neg vuz1010",fontsize=10,color="white",style="solid",shape="box"];1699 -> 5367[label="",style="solid", color="burlywood", weight=9]; 5367 -> 1745[label="",style="solid", color="burlywood", weight=3]; 66[label="reduce2Reduce0 (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) True",fontsize=16,color="black",shape="box"];66 -> 76[label="",style="solid", color="black", weight=3]; 67[label="error []",fontsize=16,color="red",shape="box"];68[label="primMulNat (Succ vuz3000) vuz410",fontsize=16,color="burlywood",shape="box"];5368[label="vuz410/Succ vuz4100",fontsize=10,color="white",style="solid",shape="box"];68 -> 5368[label="",style="solid", color="burlywood", weight=9]; 5368 -> 77[label="",style="solid", color="burlywood", weight=3]; 5369[label="vuz410/Zero",fontsize=10,color="white",style="solid",shape="box"];68 -> 5369[label="",style="solid", color="burlywood", weight=9]; 5369 -> 78[label="",style="solid", color="burlywood", weight=3]; 69[label="primMulNat Zero vuz410",fontsize=16,color="burlywood",shape="box"];5370[label="vuz410/Succ vuz4100",fontsize=10,color="white",style="solid",shape="box"];69 -> 5370[label="",style="solid", color="burlywood", weight=9]; 5370 -> 79[label="",style="solid", color="burlywood", weight=3]; 5371[label="vuz410/Zero",fontsize=10,color="white",style="solid",shape="box"];69 -> 5371[label="",style="solid", color="burlywood", weight=9]; 5371 -> 80[label="",style="solid", color="burlywood", weight=3]; 70[label="vuz410",fontsize=16,color="green",shape="box"];71[label="vuz300",fontsize=16,color="green",shape="box"];72[label="vuz300",fontsize=16,color="green",shape="box"];73[label="vuz410",fontsize=16,color="green",shape="box"];74[label="absReal1 (vuz31 * vuz40) (vuz31 * vuz40 >= fromInt (Pos Zero)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];74 -> 81[label="",style="solid", color="black", weight=3]; 375[label="Pos Zero",fontsize=16,color="green",shape="box"];1742[label="vuz40",fontsize=16,color="green",shape="box"];1743[label="vuz31",fontsize=16,color="green",shape="box"];148[label="absReal vuz25",fontsize=16,color="black",shape="box"];148 -> 169[label="",style="solid", color="black", weight=3]; 1744[label="primEqInt (Pos vuz1010) vuz100",fontsize=16,color="burlywood",shape="box"];5372[label="vuz1010/Succ vuz10100",fontsize=10,color="white",style="solid",shape="box"];1744 -> 5372[label="",style="solid", color="burlywood", weight=9]; 5372 -> 1814[label="",style="solid", color="burlywood", weight=3]; 5373[label="vuz1010/Zero",fontsize=10,color="white",style="solid",shape="box"];1744 -> 5373[label="",style="solid", color="burlywood", weight=9]; 5373 -> 1815[label="",style="solid", color="burlywood", weight=3]; 1745[label="primEqInt (Neg vuz1010) vuz100",fontsize=16,color="burlywood",shape="box"];5374[label="vuz1010/Succ vuz10100",fontsize=10,color="white",style="solid",shape="box"];1745 -> 5374[label="",style="solid", color="burlywood", weight=9]; 5374 -> 1816[label="",style="solid", color="burlywood", weight=3]; 5375[label="vuz1010/Zero",fontsize=10,color="white",style="solid",shape="box"];1745 -> 5375[label="",style="solid", color="burlywood", weight=9]; 5375 -> 1817[label="",style="solid", color="burlywood", weight=3]; 76[label="vuz11 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)) :% (abs (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14)))",fontsize=16,color="green",shape="box"];76 -> 83[label="",style="dashed", color="green", weight=3]; 76 -> 84[label="",style="dashed", color="green", weight=3]; 77[label="primMulNat (Succ vuz3000) (Succ vuz4100)",fontsize=16,color="black",shape="box"];77 -> 85[label="",style="solid", color="black", weight=3]; 78[label="primMulNat (Succ vuz3000) Zero",fontsize=16,color="black",shape="box"];78 -> 86[label="",style="solid", color="black", weight=3]; 79[label="primMulNat Zero (Succ vuz4100)",fontsize=16,color="black",shape="box"];79 -> 87[label="",style="solid", color="black", weight=3]; 80[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];80 -> 88[label="",style="solid", color="black", weight=3]; 81[label="absReal1 (vuz31 * vuz40) (compare (vuz31 * vuz40) (fromInt (Pos Zero)) /= LT) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];81 -> 89[label="",style="solid", color="black", weight=3]; 169[label="absReal2 vuz25",fontsize=16,color="black",shape="box"];169 -> 190[label="",style="solid", color="black", weight=3]; 1814[label="primEqInt (Pos (Succ vuz10100)) vuz100",fontsize=16,color="burlywood",shape="box"];5376[label="vuz100/Pos vuz1000",fontsize=10,color="white",style="solid",shape="box"];1814 -> 5376[label="",style="solid", color="burlywood", weight=9]; 5376 -> 1879[label="",style="solid", color="burlywood", weight=3]; 5377[label="vuz100/Neg vuz1000",fontsize=10,color="white",style="solid",shape="box"];1814 -> 5377[label="",style="solid", color="burlywood", weight=9]; 5377 -> 1880[label="",style="solid", color="burlywood", weight=3]; 1815[label="primEqInt (Pos Zero) vuz100",fontsize=16,color="burlywood",shape="box"];5378[label="vuz100/Pos vuz1000",fontsize=10,color="white",style="solid",shape="box"];1815 -> 5378[label="",style="solid", color="burlywood", weight=9]; 5378 -> 1881[label="",style="solid", color="burlywood", weight=3]; 5379[label="vuz100/Neg vuz1000",fontsize=10,color="white",style="solid",shape="box"];1815 -> 5379[label="",style="solid", color="burlywood", weight=9]; 5379 -> 1882[label="",style="solid", color="burlywood", weight=3]; 1816[label="primEqInt (Neg (Succ vuz10100)) vuz100",fontsize=16,color="burlywood",shape="box"];5380[label="vuz100/Pos vuz1000",fontsize=10,color="white",style="solid",shape="box"];1816 -> 5380[label="",style="solid", color="burlywood", weight=9]; 5380 -> 1883[label="",style="solid", color="burlywood", weight=3]; 5381[label="vuz100/Neg vuz1000",fontsize=10,color="white",style="solid",shape="box"];1816 -> 5381[label="",style="solid", color="burlywood", weight=9]; 5381 -> 1884[label="",style="solid", color="burlywood", weight=3]; 1817[label="primEqInt (Neg Zero) vuz100",fontsize=16,color="burlywood",shape="box"];5382[label="vuz100/Pos vuz1000",fontsize=10,color="white",style="solid",shape="box"];1817 -> 5382[label="",style="solid", color="burlywood", weight=9]; 5382 -> 1885[label="",style="solid", color="burlywood", weight=3]; 5383[label="vuz100/Neg vuz1000",fontsize=10,color="white",style="solid",shape="box"];1817 -> 5383[label="",style="solid", color="burlywood", weight=9]; 5383 -> 1886[label="",style="solid", color="burlywood", weight=3]; 83[label="vuz11 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="blue",shape="box"];5384[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];83 -> 5384[label="",style="solid", color="blue", weight=9]; 5384 -> 91[label="",style="solid", color="blue", weight=3]; 5385[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];83 -> 5385[label="",style="solid", color="blue", weight=9]; 5385 -> 92[label="",style="solid", color="blue", weight=3]; 84[label="abs (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="blue",shape="box"];5386[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];84 -> 5386[label="",style="solid", color="blue", weight=9]; 5386 -> 93[label="",style="solid", color="blue", weight=3]; 5387[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];84 -> 5387[label="",style="solid", color="blue", weight=9]; 5387 -> 94[label="",style="solid", color="blue", weight=3]; 85 -> 95[label="",style="dashed", color="red", weight=0]; 85[label="primPlusNat (primMulNat vuz3000 (Succ vuz4100)) (Succ vuz4100)",fontsize=16,color="magenta"];85 -> 96[label="",style="dashed", color="magenta", weight=3]; 86[label="Zero",fontsize=16,color="green",shape="box"];87[label="Zero",fontsize=16,color="green",shape="box"];88[label="Zero",fontsize=16,color="green",shape="box"];89[label="absReal1 (vuz31 * vuz40) (not (compare (vuz31 * vuz40) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5388[label="vuz31/Integer vuz310",fontsize=10,color="white",style="solid",shape="box"];89 -> 5388[label="",style="solid", color="burlywood", weight=9]; 5388 -> 97[label="",style="solid", color="burlywood", weight=3]; 190[label="absReal1 vuz25 (vuz25 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];190 -> 205[label="",style="solid", color="black", weight=3]; 1879[label="primEqInt (Pos (Succ vuz10100)) (Pos vuz1000)",fontsize=16,color="burlywood",shape="box"];5389[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1879 -> 5389[label="",style="solid", color="burlywood", weight=9]; 5389 -> 1952[label="",style="solid", color="burlywood", weight=3]; 5390[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1879 -> 5390[label="",style="solid", color="burlywood", weight=9]; 5390 -> 1953[label="",style="solid", color="burlywood", weight=3]; 1880[label="primEqInt (Pos (Succ vuz10100)) (Neg vuz1000)",fontsize=16,color="black",shape="box"];1880 -> 1954[label="",style="solid", color="black", weight=3]; 1881[label="primEqInt (Pos Zero) (Pos vuz1000)",fontsize=16,color="burlywood",shape="box"];5391[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1881 -> 5391[label="",style="solid", color="burlywood", weight=9]; 5391 -> 1955[label="",style="solid", color="burlywood", weight=3]; 5392[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1881 -> 5392[label="",style="solid", color="burlywood", weight=9]; 5392 -> 1956[label="",style="solid", color="burlywood", weight=3]; 1882[label="primEqInt (Pos Zero) (Neg vuz1000)",fontsize=16,color="burlywood",shape="box"];5393[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1882 -> 5393[label="",style="solid", color="burlywood", weight=9]; 5393 -> 1957[label="",style="solid", color="burlywood", weight=3]; 5394[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1882 -> 5394[label="",style="solid", color="burlywood", weight=9]; 5394 -> 1958[label="",style="solid", color="burlywood", weight=3]; 1883[label="primEqInt (Neg (Succ vuz10100)) (Pos vuz1000)",fontsize=16,color="black",shape="box"];1883 -> 1959[label="",style="solid", color="black", weight=3]; 1884[label="primEqInt (Neg (Succ vuz10100)) (Neg vuz1000)",fontsize=16,color="burlywood",shape="box"];5395[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1884 -> 5395[label="",style="solid", color="burlywood", weight=9]; 5395 -> 1960[label="",style="solid", color="burlywood", weight=3]; 5396[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1884 -> 5396[label="",style="solid", color="burlywood", weight=9]; 5396 -> 1961[label="",style="solid", color="burlywood", weight=3]; 1885[label="primEqInt (Neg Zero) (Pos vuz1000)",fontsize=16,color="burlywood",shape="box"];5397[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1885 -> 5397[label="",style="solid", color="burlywood", weight=9]; 5397 -> 1962[label="",style="solid", color="burlywood", weight=3]; 5398[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1885 -> 5398[label="",style="solid", color="burlywood", weight=9]; 5398 -> 1963[label="",style="solid", color="burlywood", weight=3]; 1886[label="primEqInt (Neg Zero) (Neg vuz1000)",fontsize=16,color="burlywood",shape="box"];5399[label="vuz1000/Succ vuz10000",fontsize=10,color="white",style="solid",shape="box"];1886 -> 5399[label="",style="solid", color="burlywood", weight=9]; 5399 -> 1964[label="",style="solid", color="burlywood", weight=3]; 5400[label="vuz1000/Zero",fontsize=10,color="white",style="solid",shape="box"];1886 -> 5400[label="",style="solid", color="burlywood", weight=9]; 5400 -> 1965[label="",style="solid", color="burlywood", weight=3]; 91 -> 99[label="",style="dashed", color="red", weight=0]; 91[label="vuz11 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="magenta"];91 -> 100[label="",style="dashed", color="magenta", weight=3]; 91 -> 101[label="",style="dashed", color="magenta", weight=3]; 91 -> 102[label="",style="dashed", color="magenta", weight=3]; 92[label="vuz11 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="burlywood",shape="box"];5401[label="vuz11/Integer vuz110",fontsize=10,color="white",style="solid",shape="box"];92 -> 5401[label="",style="solid", color="burlywood", weight=9]; 5401 -> 106[label="",style="solid", color="burlywood", weight=3]; 93 -> 99[label="",style="dashed", color="red", weight=0]; 93[label="abs (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="magenta"];93 -> 103[label="",style="dashed", color="magenta", weight=3]; 93 -> 104[label="",style="dashed", color="magenta", weight=3]; 93 -> 105[label="",style="dashed", color="magenta", weight=3]; 94[label="abs (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];94 -> 107[label="",style="solid", color="black", weight=3]; 96 -> 58[label="",style="dashed", color="red", weight=0]; 96[label="primMulNat vuz3000 (Succ vuz4100)",fontsize=16,color="magenta"];96 -> 108[label="",style="dashed", color="magenta", weight=3]; 96 -> 109[label="",style="dashed", color="magenta", weight=3]; 95[label="primPlusNat vuz17 (Succ vuz4100)",fontsize=16,color="burlywood",shape="triangle"];5402[label="vuz17/Succ vuz170",fontsize=10,color="white",style="solid",shape="box"];95 -> 5402[label="",style="solid", color="burlywood", weight=9]; 5402 -> 110[label="",style="solid", color="burlywood", weight=3]; 5403[label="vuz17/Zero",fontsize=10,color="white",style="solid",shape="box"];95 -> 5403[label="",style="solid", color="burlywood", weight=9]; 5403 -> 111[label="",style="solid", color="burlywood", weight=3]; 97[label="absReal1 (Integer vuz310 * vuz40) (not (compare (Integer vuz310 * vuz40) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5404[label="vuz40/Integer vuz400",fontsize=10,color="white",style="solid",shape="box"];97 -> 5404[label="",style="solid", color="burlywood", weight=9]; 5404 -> 112[label="",style="solid", color="burlywood", weight=3]; 205[label="absReal1 vuz25 (compare vuz25 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];205 -> 221[label="",style="solid", color="black", weight=3]; 1952[label="primEqInt (Pos (Succ vuz10100)) (Pos (Succ vuz10000))",fontsize=16,color="black",shape="box"];1952 -> 1975[label="",style="solid", color="black", weight=3]; 1953[label="primEqInt (Pos (Succ vuz10100)) (Pos Zero)",fontsize=16,color="black",shape="box"];1953 -> 1976[label="",style="solid", color="black", weight=3]; 1954[label="False",fontsize=16,color="green",shape="box"];1955[label="primEqInt (Pos Zero) (Pos (Succ vuz10000))",fontsize=16,color="black",shape="box"];1955 -> 1977[label="",style="solid", color="black", weight=3]; 1956[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];1956 -> 1978[label="",style="solid", color="black", weight=3]; 1957[label="primEqInt (Pos Zero) (Neg (Succ vuz10000))",fontsize=16,color="black",shape="box"];1957 -> 1979[label="",style="solid", color="black", weight=3]; 1958[label="primEqInt (Pos Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];1958 -> 1980[label="",style="solid", color="black", weight=3]; 1959[label="False",fontsize=16,color="green",shape="box"];1960[label="primEqInt (Neg (Succ vuz10100)) (Neg (Succ vuz10000))",fontsize=16,color="black",shape="box"];1960 -> 1981[label="",style="solid", color="black", weight=3]; 1961[label="primEqInt (Neg (Succ vuz10100)) (Neg Zero)",fontsize=16,color="black",shape="box"];1961 -> 1982[label="",style="solid", color="black", weight=3]; 1962[label="primEqInt (Neg Zero) (Pos (Succ vuz10000))",fontsize=16,color="black",shape="box"];1962 -> 1983[label="",style="solid", color="black", weight=3]; 1963[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];1963 -> 1984[label="",style="solid", color="black", weight=3]; 1964[label="primEqInt (Neg Zero) (Neg (Succ vuz10000))",fontsize=16,color="black",shape="box"];1964 -> 1985[label="",style="solid", color="black", weight=3]; 1965[label="primEqInt (Neg Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];1965 -> 1986[label="",style="solid", color="black", weight=3]; 100 -> 20[label="",style="dashed", color="red", weight=0]; 100[label="vuz11 * vuz12 * signum (vuz13 * vuz14)",fontsize=16,color="magenta"];100 -> 114[label="",style="dashed", color="magenta", weight=3]; 100 -> 115[label="",style="dashed", color="magenta", weight=3]; 101 -> 20[label="",style="dashed", color="red", weight=0]; 101[label="vuz11 * vuz12 * signum (vuz13 * vuz14)",fontsize=16,color="magenta"];101 -> 116[label="",style="dashed", color="magenta", weight=3]; 101 -> 117[label="",style="dashed", color="magenta", weight=3]; 102 -> 20[label="",style="dashed", color="red", weight=0]; 102[label="vuz13 * vuz14",fontsize=16,color="magenta"];102 -> 118[label="",style="dashed", color="magenta", weight=3]; 102 -> 119[label="",style="dashed", color="magenta", weight=3]; 99[label="vuz18 `quot` reduce2D vuz19 (abs vuz21)",fontsize=16,color="black",shape="triangle"];99 -> 120[label="",style="solid", color="black", weight=3]; 106[label="Integer vuz110 * vuz12 * signum (vuz13 * vuz14) `quot` reduce2D (Integer vuz110 * vuz12 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="burlywood",shape="box"];5405[label="vuz12/Integer vuz120",fontsize=10,color="white",style="solid",shape="box"];106 -> 5405[label="",style="solid", color="burlywood", weight=9]; 5405 -> 125[label="",style="solid", color="burlywood", weight=3]; 103 -> 20[label="",style="dashed", color="red", weight=0]; 103[label="vuz11 * vuz12 * signum (vuz13 * vuz14)",fontsize=16,color="magenta"];103 -> 121[label="",style="dashed", color="magenta", weight=3]; 103 -> 122[label="",style="dashed", color="magenta", weight=3]; 104 -> 123[label="",style="dashed", color="red", weight=0]; 104[label="abs (vuz13 * vuz14)",fontsize=16,color="magenta"];104 -> 124[label="",style="dashed", color="magenta", weight=3]; 105 -> 20[label="",style="dashed", color="red", weight=0]; 105[label="vuz13 * vuz14",fontsize=16,color="magenta"];105 -> 126[label="",style="dashed", color="magenta", weight=3]; 105 -> 127[label="",style="dashed", color="magenta", weight=3]; 107[label="absReal (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];107 -> 128[label="",style="solid", color="black", weight=3]; 108[label="vuz3000",fontsize=16,color="green",shape="box"];109[label="Succ vuz4100",fontsize=16,color="green",shape="box"];110[label="primPlusNat (Succ vuz170) (Succ vuz4100)",fontsize=16,color="black",shape="box"];110 -> 129[label="",style="solid", color="black", weight=3]; 111[label="primPlusNat Zero (Succ vuz4100)",fontsize=16,color="black",shape="box"];111 -> 130[label="",style="solid", color="black", weight=3]; 112[label="absReal1 (Integer vuz310 * Integer vuz400) (not (compare (Integer vuz310 * Integer vuz400) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];112 -> 131[label="",style="solid", color="black", weight=3]; 221[label="absReal1 vuz25 (not (compare vuz25 (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];221 -> 237[label="",style="solid", color="black", weight=3]; 1975 -> 547[label="",style="dashed", color="red", weight=0]; 1975[label="primEqNat vuz10100 vuz10000",fontsize=16,color="magenta"];1975 -> 2006[label="",style="dashed", color="magenta", weight=3]; 1975 -> 2007[label="",style="dashed", color="magenta", weight=3]; 1976[label="False",fontsize=16,color="green",shape="box"];1977[label="False",fontsize=16,color="green",shape="box"];1978[label="True",fontsize=16,color="green",shape="box"];1979[label="False",fontsize=16,color="green",shape="box"];1980[label="True",fontsize=16,color="green",shape="box"];1981 -> 547[label="",style="dashed", color="red", weight=0]; 1981[label="primEqNat vuz10100 vuz10000",fontsize=16,color="magenta"];1981 -> 2008[label="",style="dashed", color="magenta", weight=3]; 1981 -> 2009[label="",style="dashed", color="magenta", weight=3]; 1982[label="False",fontsize=16,color="green",shape="box"];1983[label="False",fontsize=16,color="green",shape="box"];1984[label="True",fontsize=16,color="green",shape="box"];1985[label="False",fontsize=16,color="green",shape="box"];1986[label="True",fontsize=16,color="green",shape="box"];114 -> 133[label="",style="dashed", color="red", weight=0]; 114[label="signum (vuz13 * vuz14)",fontsize=16,color="magenta"];114 -> 134[label="",style="dashed", color="magenta", weight=3]; 115 -> 20[label="",style="dashed", color="red", weight=0]; 115[label="vuz11 * vuz12",fontsize=16,color="magenta"];115 -> 137[label="",style="dashed", color="magenta", weight=3]; 115 -> 138[label="",style="dashed", color="magenta", weight=3]; 116 -> 133[label="",style="dashed", color="red", weight=0]; 116[label="signum (vuz13 * vuz14)",fontsize=16,color="magenta"];116 -> 135[label="",style="dashed", color="magenta", weight=3]; 117 -> 20[label="",style="dashed", color="red", weight=0]; 117[label="vuz11 * vuz12",fontsize=16,color="magenta"];117 -> 139[label="",style="dashed", color="magenta", weight=3]; 117 -> 140[label="",style="dashed", color="magenta", weight=3]; 118[label="vuz14",fontsize=16,color="green",shape="box"];119[label="vuz13",fontsize=16,color="green",shape="box"];120 -> 141[label="",style="dashed", color="red", weight=0]; 120[label="primQuotInt vuz18 (reduce2D vuz19 (abs vuz21))",fontsize=16,color="magenta"];120 -> 142[label="",style="dashed", color="magenta", weight=3]; 125[label="Integer vuz110 * Integer vuz120 * signum (vuz13 * vuz14) `quot` reduce2D (Integer vuz110 * Integer vuz120 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];125 -> 143[label="",style="solid", color="black", weight=3]; 121 -> 133[label="",style="dashed", color="red", weight=0]; 121[label="signum (vuz13 * vuz14)",fontsize=16,color="magenta"];121 -> 136[label="",style="dashed", color="magenta", weight=3]; 122 -> 20[label="",style="dashed", color="red", weight=0]; 122[label="vuz11 * vuz12",fontsize=16,color="magenta"];122 -> 144[label="",style="dashed", color="magenta", weight=3]; 122 -> 145[label="",style="dashed", color="magenta", weight=3]; 124 -> 20[label="",style="dashed", color="red", weight=0]; 124[label="vuz13 * vuz14",fontsize=16,color="magenta"];124 -> 146[label="",style="dashed", color="magenta", weight=3]; 124 -> 147[label="",style="dashed", color="magenta", weight=3]; 126[label="vuz14",fontsize=16,color="green",shape="box"];127[label="vuz13",fontsize=16,color="green",shape="box"];128[label="absReal2 (vuz13 * vuz14) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal2 (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];128 -> 149[label="",style="solid", color="black", weight=3]; 129[label="Succ (Succ (primPlusNat vuz170 vuz4100))",fontsize=16,color="green",shape="box"];129 -> 150[label="",style="dashed", color="green", weight=3]; 130[label="Succ vuz4100",fontsize=16,color="green",shape="box"];131 -> 151[label="",style="dashed", color="red", weight=0]; 131[label="absReal1 (Integer (primMulInt vuz310 vuz400)) (not (compare (Integer (primMulInt vuz310 vuz400)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="magenta"];131 -> 152[label="",style="dashed", color="magenta", weight=3]; 131 -> 153[label="",style="dashed", color="magenta", weight=3]; 237[label="absReal1 vuz25 (not (primCmpInt vuz25 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];5406[label="vuz25/Pos vuz250",fontsize=10,color="white",style="solid",shape="box"];237 -> 5406[label="",style="solid", color="burlywood", weight=9]; 5406 -> 258[label="",style="solid", color="burlywood", weight=3]; 5407[label="vuz25/Neg vuz250",fontsize=10,color="white",style="solid",shape="box"];237 -> 5407[label="",style="solid", color="burlywood", weight=9]; 5407 -> 259[label="",style="solid", color="burlywood", weight=3]; 2006[label="vuz10000",fontsize=16,color="green",shape="box"];2007[label="vuz10100",fontsize=16,color="green",shape="box"];547[label="primEqNat vuz1600 vuz4700",fontsize=16,color="burlywood",shape="triangle"];5408[label="vuz1600/Succ vuz16000",fontsize=10,color="white",style="solid",shape="box"];547 -> 5408[label="",style="solid", color="burlywood", weight=9]; 5408 -> 580[label="",style="solid", color="burlywood", weight=3]; 5409[label="vuz1600/Zero",fontsize=10,color="white",style="solid",shape="box"];547 -> 5409[label="",style="solid", color="burlywood", weight=9]; 5409 -> 581[label="",style="solid", color="burlywood", weight=3]; 2008[label="vuz10000",fontsize=16,color="green",shape="box"];2009[label="vuz10100",fontsize=16,color="green",shape="box"];134 -> 20[label="",style="dashed", color="red", weight=0]; 134[label="vuz13 * vuz14",fontsize=16,color="magenta"];134 -> 156[label="",style="dashed", color="magenta", weight=3]; 134 -> 157[label="",style="dashed", color="magenta", weight=3]; 133[label="signum vuz26",fontsize=16,color="black",shape="triangle"];133 -> 158[label="",style="solid", color="black", weight=3]; 137[label="vuz12",fontsize=16,color="green",shape="box"];138[label="vuz11",fontsize=16,color="green",shape="box"];135 -> 20[label="",style="dashed", color="red", weight=0]; 135[label="vuz13 * vuz14",fontsize=16,color="magenta"];135 -> 159[label="",style="dashed", color="magenta", weight=3]; 135 -> 160[label="",style="dashed", color="magenta", weight=3]; 139[label="vuz12",fontsize=16,color="green",shape="box"];140[label="vuz11",fontsize=16,color="green",shape="box"];142 -> 123[label="",style="dashed", color="red", weight=0]; 142[label="abs vuz21",fontsize=16,color="magenta"];142 -> 161[label="",style="dashed", color="magenta", weight=3]; 141[label="primQuotInt vuz18 (reduce2D vuz19 vuz27)",fontsize=16,color="burlywood",shape="triangle"];5410[label="vuz18/Pos vuz180",fontsize=10,color="white",style="solid",shape="box"];141 -> 5410[label="",style="solid", color="burlywood", weight=9]; 5410 -> 162[label="",style="solid", color="burlywood", weight=3]; 5411[label="vuz18/Neg vuz180",fontsize=10,color="white",style="solid",shape="box"];141 -> 5411[label="",style="solid", color="burlywood", weight=9]; 5411 -> 163[label="",style="solid", color="burlywood", weight=3]; 143 -> 164[label="",style="dashed", color="red", weight=0]; 143[label="Integer (primMulInt vuz110 vuz120) * signum (vuz13 * vuz14) `quot` reduce2D (Integer (primMulInt vuz110 vuz120) * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="magenta"];143 -> 165[label="",style="dashed", color="magenta", weight=3]; 143 -> 166[label="",style="dashed", color="magenta", weight=3]; 136 -> 20[label="",style="dashed", color="red", weight=0]; 136[label="vuz13 * vuz14",fontsize=16,color="magenta"];136 -> 167[label="",style="dashed", color="magenta", weight=3]; 136 -> 168[label="",style="dashed", color="magenta", weight=3]; 144[label="vuz12",fontsize=16,color="green",shape="box"];145[label="vuz11",fontsize=16,color="green",shape="box"];146[label="vuz14",fontsize=16,color="green",shape="box"];147[label="vuz13",fontsize=16,color="green",shape="box"];149[label="absReal1 (vuz13 * vuz14) (vuz13 * vuz14 >= fromInt (Pos Zero)) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal1 (vuz13 * vuz14) (vuz13 * vuz14 >= fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];149 -> 170[label="",style="solid", color="black", weight=3]; 150[label="primPlusNat vuz170 vuz4100",fontsize=16,color="burlywood",shape="triangle"];5412[label="vuz170/Succ vuz1700",fontsize=10,color="white",style="solid",shape="box"];150 -> 5412[label="",style="solid", color="burlywood", weight=9]; 5412 -> 171[label="",style="solid", color="burlywood", weight=3]; 5413[label="vuz170/Zero",fontsize=10,color="white",style="solid",shape="box"];150 -> 5413[label="",style="solid", color="burlywood", weight=9]; 5413 -> 172[label="",style="solid", color="burlywood", weight=3]; 152 -> 25[label="",style="dashed", color="red", weight=0]; 152[label="primMulInt vuz310 vuz400",fontsize=16,color="magenta"];152 -> 173[label="",style="dashed", color="magenta", weight=3]; 152 -> 174[label="",style="dashed", color="magenta", weight=3]; 153 -> 25[label="",style="dashed", color="red", weight=0]; 153[label="primMulInt vuz310 vuz400",fontsize=16,color="magenta"];153 -> 175[label="",style="dashed", color="magenta", weight=3]; 153 -> 176[label="",style="dashed", color="magenta", weight=3]; 151[label="absReal1 (Integer vuz28) (not (compare (Integer vuz29) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];151 -> 177[label="",style="solid", color="black", weight=3]; 258[label="absReal1 (Pos vuz250) (not (primCmpInt (Pos vuz250) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];5414[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];258 -> 5414[label="",style="solid", color="burlywood", weight=9]; 5414 -> 286[label="",style="solid", color="burlywood", weight=3]; 5415[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];258 -> 5415[label="",style="solid", color="burlywood", weight=9]; 5415 -> 287[label="",style="solid", color="burlywood", weight=3]; 259[label="absReal1 (Neg vuz250) (not (primCmpInt (Neg vuz250) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];5416[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];259 -> 5416[label="",style="solid", color="burlywood", weight=9]; 5416 -> 288[label="",style="solid", color="burlywood", weight=3]; 5417[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];259 -> 5417[label="",style="solid", color="burlywood", weight=9]; 5417 -> 289[label="",style="solid", color="burlywood", weight=3]; 580[label="primEqNat (Succ vuz16000) vuz4700",fontsize=16,color="burlywood",shape="box"];5418[label="vuz4700/Succ vuz47000",fontsize=10,color="white",style="solid",shape="box"];580 -> 5418[label="",style="solid", color="burlywood", weight=9]; 5418 -> 627[label="",style="solid", color="burlywood", weight=3]; 5419[label="vuz4700/Zero",fontsize=10,color="white",style="solid",shape="box"];580 -> 5419[label="",style="solid", color="burlywood", weight=9]; 5419 -> 628[label="",style="solid", color="burlywood", weight=3]; 581[label="primEqNat Zero vuz4700",fontsize=16,color="burlywood",shape="box"];5420[label="vuz4700/Succ vuz47000",fontsize=10,color="white",style="solid",shape="box"];581 -> 5420[label="",style="solid", color="burlywood", weight=9]; 5420 -> 629[label="",style="solid", color="burlywood", weight=3]; 5421[label="vuz4700/Zero",fontsize=10,color="white",style="solid",shape="box"];581 -> 5421[label="",style="solid", color="burlywood", weight=9]; 5421 -> 630[label="",style="solid", color="burlywood", weight=3]; 156[label="vuz14",fontsize=16,color="green",shape="box"];157[label="vuz13",fontsize=16,color="green",shape="box"];158[label="signumReal vuz26",fontsize=16,color="black",shape="box"];158 -> 182[label="",style="solid", color="black", weight=3]; 159[label="vuz14",fontsize=16,color="green",shape="box"];160[label="vuz13",fontsize=16,color="green",shape="box"];161[label="vuz21",fontsize=16,color="green",shape="box"];162[label="primQuotInt (Pos vuz180) (reduce2D vuz19 vuz27)",fontsize=16,color="black",shape="box"];162 -> 183[label="",style="solid", color="black", weight=3]; 163[label="primQuotInt (Neg vuz180) (reduce2D vuz19 vuz27)",fontsize=16,color="black",shape="box"];163 -> 184[label="",style="solid", color="black", weight=3]; 165 -> 25[label="",style="dashed", color="red", weight=0]; 165[label="primMulInt vuz110 vuz120",fontsize=16,color="magenta"];165 -> 185[label="",style="dashed", color="magenta", weight=3]; 165 -> 186[label="",style="dashed", color="magenta", weight=3]; 166 -> 25[label="",style="dashed", color="red", weight=0]; 166[label="primMulInt vuz110 vuz120",fontsize=16,color="magenta"];166 -> 187[label="",style="dashed", color="magenta", weight=3]; 166 -> 188[label="",style="dashed", color="magenta", weight=3]; 164[label="Integer vuz30 * signum (vuz13 * vuz14) `quot` reduce2D (Integer vuz31 * signum (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="triangle"];164 -> 189[label="",style="solid", color="black", weight=3]; 167[label="vuz14",fontsize=16,color="green",shape="box"];168[label="vuz13",fontsize=16,color="green",shape="box"];170[label="absReal1 (vuz13 * vuz14) (compare (vuz13 * vuz14) (fromInt (Pos Zero)) /= LT) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal1 (vuz13 * vuz14) (compare (vuz13 * vuz14) (fromInt (Pos Zero)) /= LT))",fontsize=16,color="black",shape="box"];170 -> 191[label="",style="solid", color="black", weight=3]; 171[label="primPlusNat (Succ vuz1700) vuz4100",fontsize=16,color="burlywood",shape="box"];5422[label="vuz4100/Succ vuz41000",fontsize=10,color="white",style="solid",shape="box"];171 -> 5422[label="",style="solid", color="burlywood", weight=9]; 5422 -> 192[label="",style="solid", color="burlywood", weight=3]; 5423[label="vuz4100/Zero",fontsize=10,color="white",style="solid",shape="box"];171 -> 5423[label="",style="solid", color="burlywood", weight=9]; 5423 -> 193[label="",style="solid", color="burlywood", weight=3]; 172[label="primPlusNat Zero vuz4100",fontsize=16,color="burlywood",shape="box"];5424[label="vuz4100/Succ vuz41000",fontsize=10,color="white",style="solid",shape="box"];172 -> 5424[label="",style="solid", color="burlywood", weight=9]; 5424 -> 194[label="",style="solid", color="burlywood", weight=3]; 5425[label="vuz4100/Zero",fontsize=10,color="white",style="solid",shape="box"];172 -> 5425[label="",style="solid", color="burlywood", weight=9]; 5425 -> 195[label="",style="solid", color="burlywood", weight=3]; 173[label="vuz400",fontsize=16,color="green",shape="box"];174[label="vuz310",fontsize=16,color="green",shape="box"];175[label="vuz400",fontsize=16,color="green",shape="box"];176[label="vuz310",fontsize=16,color="green",shape="box"];177[label="absReal1 (Integer vuz28) (not (compare (Integer vuz29) (Integer (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];177 -> 196[label="",style="solid", color="black", weight=3]; 286[label="absReal1 (Pos (Succ vuz2500)) (not (primCmpInt (Pos (Succ vuz2500)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];286 -> 326[label="",style="solid", color="black", weight=3]; 287[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];287 -> 327[label="",style="solid", color="black", weight=3]; 288[label="absReal1 (Neg (Succ vuz2500)) (not (primCmpInt (Neg (Succ vuz2500)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];288 -> 328[label="",style="solid", color="black", weight=3]; 289[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];289 -> 329[label="",style="solid", color="black", weight=3]; 627[label="primEqNat (Succ vuz16000) (Succ vuz47000)",fontsize=16,color="black",shape="box"];627 -> 703[label="",style="solid", color="black", weight=3]; 628[label="primEqNat (Succ vuz16000) Zero",fontsize=16,color="black",shape="box"];628 -> 704[label="",style="solid", color="black", weight=3]; 629[label="primEqNat Zero (Succ vuz47000)",fontsize=16,color="black",shape="box"];629 -> 705[label="",style="solid", color="black", weight=3]; 630[label="primEqNat Zero Zero",fontsize=16,color="black",shape="box"];630 -> 706[label="",style="solid", color="black", weight=3]; 182[label="signumReal3 vuz26",fontsize=16,color="black",shape="box"];182 -> 201[label="",style="solid", color="black", weight=3]; 183[label="primQuotInt (Pos vuz180) (gcd vuz19 vuz27)",fontsize=16,color="black",shape="box"];183 -> 202[label="",style="solid", color="black", weight=3]; 184[label="primQuotInt (Neg vuz180) (gcd vuz19 vuz27)",fontsize=16,color="black",shape="box"];184 -> 203[label="",style="solid", color="black", weight=3]; 185[label="vuz120",fontsize=16,color="green",shape="box"];186[label="vuz110",fontsize=16,color="green",shape="box"];187[label="vuz120",fontsize=16,color="green",shape="box"];188[label="vuz110",fontsize=16,color="green",shape="box"];189[label="Integer vuz30 * signumReal (vuz13 * vuz14) `quot` reduce2D (Integer vuz31 * signumReal (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];189 -> 204[label="",style="solid", color="black", weight=3]; 191[label="absReal1 (vuz13 * vuz14) (not (compare (vuz13 * vuz14) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (vuz13 * vuz14)) (absReal1 (vuz13 * vuz14) (not (compare (vuz13 * vuz14) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="burlywood",shape="box"];5426[label="vuz13/Integer vuz130",fontsize=10,color="white",style="solid",shape="box"];191 -> 5426[label="",style="solid", color="burlywood", weight=9]; 5426 -> 206[label="",style="solid", color="burlywood", weight=3]; 192[label="primPlusNat (Succ vuz1700) (Succ vuz41000)",fontsize=16,color="black",shape="box"];192 -> 207[label="",style="solid", color="black", weight=3]; 193[label="primPlusNat (Succ vuz1700) Zero",fontsize=16,color="black",shape="box"];193 -> 208[label="",style="solid", color="black", weight=3]; 194[label="primPlusNat Zero (Succ vuz41000)",fontsize=16,color="black",shape="box"];194 -> 209[label="",style="solid", color="black", weight=3]; 195[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];195 -> 210[label="",style="solid", color="black", weight=3]; 196[label="absReal1 (Integer vuz28) (not (primCmpInt vuz29 (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5427[label="vuz29/Pos vuz290",fontsize=10,color="white",style="solid",shape="box"];196 -> 5427[label="",style="solid", color="burlywood", weight=9]; 5427 -> 211[label="",style="solid", color="burlywood", weight=3]; 5428[label="vuz29/Neg vuz290",fontsize=10,color="white",style="solid",shape="box"];196 -> 5428[label="",style="solid", color="burlywood", weight=9]; 5428 -> 212[label="",style="solid", color="burlywood", weight=3]; 326[label="absReal1 (Pos (Succ vuz2500)) (not (primCmpInt (Pos (Succ vuz2500)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];326 -> 364[label="",style="solid", color="black", weight=3]; 327[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];327 -> 365[label="",style="solid", color="black", weight=3]; 328[label="absReal1 (Neg (Succ vuz2500)) (not (primCmpInt (Neg (Succ vuz2500)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];328 -> 366[label="",style="solid", color="black", weight=3]; 329[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];329 -> 367[label="",style="solid", color="black", weight=3]; 703 -> 547[label="",style="dashed", color="red", weight=0]; 703[label="primEqNat vuz16000 vuz47000",fontsize=16,color="magenta"];703 -> 789[label="",style="dashed", color="magenta", weight=3]; 703 -> 790[label="",style="dashed", color="magenta", weight=3]; 704[label="False",fontsize=16,color="green",shape="box"];705[label="False",fontsize=16,color="green",shape="box"];706[label="True",fontsize=16,color="green",shape="box"];201[label="signumReal2 vuz26 (vuz26 == fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];201 -> 217[label="",style="solid", color="black", weight=3]; 202[label="primQuotInt (Pos vuz180) (gcd3 vuz19 vuz27)",fontsize=16,color="black",shape="box"];202 -> 218[label="",style="solid", color="black", weight=3]; 203[label="primQuotInt (Neg vuz180) (gcd3 vuz19 vuz27)",fontsize=16,color="black",shape="box"];203 -> 219[label="",style="solid", color="black", weight=3]; 204[label="Integer vuz30 * signumReal3 (vuz13 * vuz14) `quot` reduce2D (Integer vuz31 * signumReal3 (vuz13 * vuz14)) (abs (vuz13 * vuz14))",fontsize=16,color="black",shape="box"];204 -> 220[label="",style="solid", color="black", weight=3]; 206[label="absReal1 (Integer vuz130 * vuz14) (not (compare (Integer vuz130 * vuz14) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz130 * vuz14)) (absReal1 (Integer vuz130 * vuz14) (not (compare (Integer vuz130 * vuz14) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="burlywood",shape="box"];5429[label="vuz14/Integer vuz140",fontsize=10,color="white",style="solid",shape="box"];206 -> 5429[label="",style="solid", color="burlywood", weight=9]; 5429 -> 222[label="",style="solid", color="burlywood", weight=3]; 207[label="Succ (Succ (primPlusNat vuz1700 vuz41000))",fontsize=16,color="green",shape="box"];207 -> 223[label="",style="dashed", color="green", weight=3]; 208[label="Succ vuz1700",fontsize=16,color="green",shape="box"];209[label="Succ vuz41000",fontsize=16,color="green",shape="box"];210[label="Zero",fontsize=16,color="green",shape="box"];211[label="absReal1 (Integer vuz28) (not (primCmpInt (Pos vuz290) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5430[label="vuz290/Succ vuz2900",fontsize=10,color="white",style="solid",shape="box"];211 -> 5430[label="",style="solid", color="burlywood", weight=9]; 5430 -> 224[label="",style="solid", color="burlywood", weight=3]; 5431[label="vuz290/Zero",fontsize=10,color="white",style="solid",shape="box"];211 -> 5431[label="",style="solid", color="burlywood", weight=9]; 5431 -> 225[label="",style="solid", color="burlywood", weight=3]; 212[label="absReal1 (Integer vuz28) (not (primCmpInt (Neg vuz290) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5432[label="vuz290/Succ vuz2900",fontsize=10,color="white",style="solid",shape="box"];212 -> 5432[label="",style="solid", color="burlywood", weight=9]; 5432 -> 226[label="",style="solid", color="burlywood", weight=3]; 5433[label="vuz290/Zero",fontsize=10,color="white",style="solid",shape="box"];212 -> 5433[label="",style="solid", color="burlywood", weight=9]; 5433 -> 227[label="",style="solid", color="burlywood", weight=3]; 364[label="absReal1 (Pos (Succ vuz2500)) (not (primCmpNat (Succ vuz2500) Zero == LT))",fontsize=16,color="black",shape="box"];364 -> 391[label="",style="solid", color="black", weight=3]; 365[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];365 -> 392[label="",style="solid", color="black", weight=3]; 366[label="absReal1 (Neg (Succ vuz2500)) (not (LT == LT))",fontsize=16,color="black",shape="box"];366 -> 393[label="",style="solid", color="black", weight=3]; 367[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];367 -> 394[label="",style="solid", color="black", weight=3]; 789[label="vuz47000",fontsize=16,color="green",shape="box"];790[label="vuz16000",fontsize=16,color="green",shape="box"];217[label="signumReal2 vuz26 (primEqInt vuz26 (fromInt (Pos Zero)))",fontsize=16,color="burlywood",shape="box"];5434[label="vuz26/Pos vuz260",fontsize=10,color="white",style="solid",shape="box"];217 -> 5434[label="",style="solid", color="burlywood", weight=9]; 5434 -> 232[label="",style="solid", color="burlywood", weight=3]; 5435[label="vuz26/Neg vuz260",fontsize=10,color="white",style="solid",shape="box"];217 -> 5435[label="",style="solid", color="burlywood", weight=9]; 5435 -> 233[label="",style="solid", color="burlywood", weight=3]; 218[label="primQuotInt (Pos vuz180) (gcd2 (vuz19 == fromInt (Pos Zero)) vuz19 vuz27)",fontsize=16,color="black",shape="box"];218 -> 234[label="",style="solid", color="black", weight=3]; 219[label="primQuotInt (Neg vuz180) (gcd2 (vuz19 == fromInt (Pos Zero)) vuz19 vuz27)",fontsize=16,color="black",shape="box"];219 -> 235[label="",style="solid", color="black", weight=3]; 220[label="Integer vuz30 * signumReal2 (vuz13 * vuz14) (vuz13 * vuz14 == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (vuz13 * vuz14) (vuz13 * vuz14 == fromInt (Pos Zero))) (abs (vuz13 * vuz14))",fontsize=16,color="burlywood",shape="box"];5436[label="vuz13/Integer vuz130",fontsize=10,color="white",style="solid",shape="box"];220 -> 5436[label="",style="solid", color="burlywood", weight=9]; 5436 -> 236[label="",style="solid", color="burlywood", weight=3]; 222[label="absReal1 (Integer vuz130 * Integer vuz140) (not (compare (Integer vuz130 * Integer vuz140) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz130 * Integer vuz140)) (absReal1 (Integer vuz130 * Integer vuz140) (not (compare (Integer vuz130 * Integer vuz140) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];222 -> 238[label="",style="solid", color="black", weight=3]; 223 -> 150[label="",style="dashed", color="red", weight=0]; 223[label="primPlusNat vuz1700 vuz41000",fontsize=16,color="magenta"];223 -> 239[label="",style="dashed", color="magenta", weight=3]; 223 -> 240[label="",style="dashed", color="magenta", weight=3]; 224[label="absReal1 (Integer vuz28) (not (primCmpInt (Pos (Succ vuz2900)) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];224 -> 241[label="",style="solid", color="black", weight=3]; 225[label="absReal1 (Integer vuz28) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];225 -> 242[label="",style="solid", color="black", weight=3]; 226[label="absReal1 (Integer vuz28) (not (primCmpInt (Neg (Succ vuz2900)) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];226 -> 243[label="",style="solid", color="black", weight=3]; 227[label="absReal1 (Integer vuz28) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];227 -> 244[label="",style="solid", color="black", weight=3]; 391[label="absReal1 (Pos (Succ vuz2500)) (not (GT == LT))",fontsize=16,color="black",shape="box"];391 -> 420[label="",style="solid", color="black", weight=3]; 392[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="black",shape="box"];392 -> 421[label="",style="solid", color="black", weight=3]; 393[label="absReal1 (Neg (Succ vuz2500)) (not True)",fontsize=16,color="black",shape="box"];393 -> 422[label="",style="solid", color="black", weight=3]; 394[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="black",shape="box"];394 -> 423[label="",style="solid", color="black", weight=3]; 232[label="signumReal2 (Pos vuz260) (primEqInt (Pos vuz260) (fromInt (Pos Zero)))",fontsize=16,color="burlywood",shape="box"];5437[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];232 -> 5437[label="",style="solid", color="burlywood", weight=9]; 5437 -> 249[label="",style="solid", color="burlywood", weight=3]; 5438[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];232 -> 5438[label="",style="solid", color="burlywood", weight=9]; 5438 -> 250[label="",style="solid", color="burlywood", weight=3]; 233[label="signumReal2 (Neg vuz260) (primEqInt (Neg vuz260) (fromInt (Pos Zero)))",fontsize=16,color="burlywood",shape="box"];5439[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];233 -> 5439[label="",style="solid", color="burlywood", weight=9]; 5439 -> 251[label="",style="solid", color="burlywood", weight=3]; 5440[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];233 -> 5440[label="",style="solid", color="burlywood", weight=9]; 5440 -> 252[label="",style="solid", color="burlywood", weight=3]; 234[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt vuz19 (fromInt (Pos Zero))) vuz19 vuz27)",fontsize=16,color="burlywood",shape="box"];5441[label="vuz19/Pos vuz190",fontsize=10,color="white",style="solid",shape="box"];234 -> 5441[label="",style="solid", color="burlywood", weight=9]; 5441 -> 253[label="",style="solid", color="burlywood", weight=3]; 5442[label="vuz19/Neg vuz190",fontsize=10,color="white",style="solid",shape="box"];234 -> 5442[label="",style="solid", color="burlywood", weight=9]; 5442 -> 254[label="",style="solid", color="burlywood", weight=3]; 235[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt vuz19 (fromInt (Pos Zero))) vuz19 vuz27)",fontsize=16,color="burlywood",shape="box"];5443[label="vuz19/Pos vuz190",fontsize=10,color="white",style="solid",shape="box"];235 -> 5443[label="",style="solid", color="burlywood", weight=9]; 5443 -> 255[label="",style="solid", color="burlywood", weight=3]; 5444[label="vuz19/Neg vuz190",fontsize=10,color="white",style="solid",shape="box"];235 -> 5444[label="",style="solid", color="burlywood", weight=9]; 5444 -> 256[label="",style="solid", color="burlywood", weight=3]; 236[label="Integer vuz30 * signumReal2 (Integer vuz130 * vuz14) (Integer vuz130 * vuz14 == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz130 * vuz14) (Integer vuz130 * vuz14 == fromInt (Pos Zero))) (abs (Integer vuz130 * vuz14))",fontsize=16,color="burlywood",shape="box"];5445[label="vuz14/Integer vuz140",fontsize=10,color="white",style="solid",shape="box"];236 -> 5445[label="",style="solid", color="burlywood", weight=9]; 5445 -> 257[label="",style="solid", color="burlywood", weight=3]; 238 -> 260[label="",style="dashed", color="red", weight=0]; 238[label="absReal1 (Integer (primMulInt vuz130 vuz140)) (not (compare (Integer (primMulInt vuz130 vuz140)) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer (primMulInt vuz130 vuz140))) (absReal1 (Integer (primMulInt vuz130 vuz140)) (not (compare (Integer (primMulInt vuz130 vuz140)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="magenta"];238 -> 261[label="",style="dashed", color="magenta", weight=3]; 238 -> 262[label="",style="dashed", color="magenta", weight=3]; 238 -> 263[label="",style="dashed", color="magenta", weight=3]; 238 -> 264[label="",style="dashed", color="magenta", weight=3]; 238 -> 265[label="",style="dashed", color="magenta", weight=3]; 239[label="vuz1700",fontsize=16,color="green",shape="box"];240[label="vuz41000",fontsize=16,color="green",shape="box"];241[label="absReal1 (Integer vuz28) (not (primCmpNat (Succ vuz2900) Zero == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];241 -> 266[label="",style="solid", color="black", weight=3]; 242[label="absReal1 (Integer vuz28) (not (EQ == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];242 -> 267[label="",style="solid", color="black", weight=3]; 243[label="absReal1 (Integer vuz28) (not (LT == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];243 -> 268[label="",style="solid", color="black", weight=3]; 244 -> 242[label="",style="dashed", color="red", weight=0]; 244[label="absReal1 (Integer vuz28) (not (EQ == LT)) == fromInt (Pos Zero)",fontsize=16,color="magenta"];420[label="absReal1 (Pos (Succ vuz2500)) (not False)",fontsize=16,color="black",shape="box"];420 -> 460[label="",style="solid", color="black", weight=3]; 421[label="absReal1 (Pos Zero) True",fontsize=16,color="black",shape="box"];421 -> 461[label="",style="solid", color="black", weight=3]; 422[label="absReal1 (Neg (Succ vuz2500)) False",fontsize=16,color="black",shape="box"];422 -> 462[label="",style="solid", color="black", weight=3]; 423[label="absReal1 (Neg Zero) True",fontsize=16,color="black",shape="box"];423 -> 463[label="",style="solid", color="black", weight=3]; 249[label="signumReal2 (Pos (Succ vuz2600)) (primEqInt (Pos (Succ vuz2600)) (fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];249 -> 273[label="",style="solid", color="black", weight=3]; 250[label="signumReal2 (Pos Zero) (primEqInt (Pos Zero) (fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];250 -> 274[label="",style="solid", color="black", weight=3]; 251[label="signumReal2 (Neg (Succ vuz2600)) (primEqInt (Neg (Succ vuz2600)) (fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];251 -> 275[label="",style="solid", color="black", weight=3]; 252[label="signumReal2 (Neg Zero) (primEqInt (Neg Zero) (fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];252 -> 276[label="",style="solid", color="black", weight=3]; 253[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos vuz190) (fromInt (Pos Zero))) (Pos vuz190) vuz27)",fontsize=16,color="burlywood",shape="box"];5446[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];253 -> 5446[label="",style="solid", color="burlywood", weight=9]; 5446 -> 277[label="",style="solid", color="burlywood", weight=3]; 5447[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];253 -> 5447[label="",style="solid", color="burlywood", weight=9]; 5447 -> 278[label="",style="solid", color="burlywood", weight=3]; 254[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg vuz190) (fromInt (Pos Zero))) (Neg vuz190) vuz27)",fontsize=16,color="burlywood",shape="box"];5448[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];254 -> 5448[label="",style="solid", color="burlywood", weight=9]; 5448 -> 279[label="",style="solid", color="burlywood", weight=3]; 5449[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];254 -> 5449[label="",style="solid", color="burlywood", weight=9]; 5449 -> 280[label="",style="solid", color="burlywood", weight=3]; 255[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos vuz190) (fromInt (Pos Zero))) (Pos vuz190) vuz27)",fontsize=16,color="burlywood",shape="box"];5450[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];255 -> 5450[label="",style="solid", color="burlywood", weight=9]; 5450 -> 281[label="",style="solid", color="burlywood", weight=3]; 5451[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];255 -> 5451[label="",style="solid", color="burlywood", weight=9]; 5451 -> 282[label="",style="solid", color="burlywood", weight=3]; 256[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg vuz190) (fromInt (Pos Zero))) (Neg vuz190) vuz27)",fontsize=16,color="burlywood",shape="box"];5452[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];256 -> 5452[label="",style="solid", color="burlywood", weight=9]; 5452 -> 283[label="",style="solid", color="burlywood", weight=3]; 5453[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];256 -> 5453[label="",style="solid", color="burlywood", weight=9]; 5453 -> 284[label="",style="solid", color="burlywood", weight=3]; 257[label="Integer vuz30 * signumReal2 (Integer vuz130 * Integer vuz140) (Integer vuz130 * Integer vuz140 == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz130 * Integer vuz140) (Integer vuz130 * Integer vuz140 == fromInt (Pos Zero))) (abs (Integer vuz130 * Integer vuz140))",fontsize=16,color="black",shape="box"];257 -> 285[label="",style="solid", color="black", weight=3]; 261 -> 25[label="",style="dashed", color="red", weight=0]; 261[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];261 -> 290[label="",style="dashed", color="magenta", weight=3]; 261 -> 291[label="",style="dashed", color="magenta", weight=3]; 262 -> 25[label="",style="dashed", color="red", weight=0]; 262[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];262 -> 292[label="",style="dashed", color="magenta", weight=3]; 262 -> 293[label="",style="dashed", color="magenta", weight=3]; 263 -> 25[label="",style="dashed", color="red", weight=0]; 263[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];263 -> 294[label="",style="dashed", color="magenta", weight=3]; 263 -> 295[label="",style="dashed", color="magenta", weight=3]; 264 -> 25[label="",style="dashed", color="red", weight=0]; 264[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];264 -> 296[label="",style="dashed", color="magenta", weight=3]; 264 -> 297[label="",style="dashed", color="magenta", weight=3]; 265 -> 25[label="",style="dashed", color="red", weight=0]; 265[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];265 -> 298[label="",style="dashed", color="magenta", weight=3]; 265 -> 299[label="",style="dashed", color="magenta", weight=3]; 260[label="absReal1 (Integer vuz32) (not (compare (Integer vuz35) (fromInt (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (compare (Integer vuz36) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="triangle"];260 -> 300[label="",style="solid", color="black", weight=3]; 266[label="absReal1 (Integer vuz28) (not (GT == LT)) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];266 -> 301[label="",style="solid", color="black", weight=3]; 267[label="absReal1 (Integer vuz28) (not False) == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];267 -> 302[label="",style="solid", color="black", weight=3]; 268[label="absReal1 (Integer vuz28) (not True) == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];268 -> 303[label="",style="solid", color="black", weight=3]; 460[label="absReal1 (Pos (Succ vuz2500)) True",fontsize=16,color="black",shape="box"];460 -> 504[label="",style="solid", color="black", weight=3]; 461[label="Pos Zero",fontsize=16,color="green",shape="box"];462[label="absReal0 (Neg (Succ vuz2500)) otherwise",fontsize=16,color="black",shape="box"];462 -> 505[label="",style="solid", color="black", weight=3]; 463[label="Neg Zero",fontsize=16,color="green",shape="box"];273[label="signumReal2 (Pos (Succ vuz2600)) (primEqInt (Pos (Succ vuz2600)) (Pos Zero))",fontsize=16,color="black",shape="box"];273 -> 308[label="",style="solid", color="black", weight=3]; 274[label="signumReal2 (Pos Zero) (primEqInt (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];274 -> 309[label="",style="solid", color="black", weight=3]; 275[label="signumReal2 (Neg (Succ vuz2600)) (primEqInt (Neg (Succ vuz2600)) (Pos Zero))",fontsize=16,color="black",shape="box"];275 -> 310[label="",style="solid", color="black", weight=3]; 276[label="signumReal2 (Neg Zero) (primEqInt (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];276 -> 311[label="",style="solid", color="black", weight=3]; 277[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos (Succ vuz1900)) (fromInt (Pos Zero))) (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];277 -> 312[label="",style="solid", color="black", weight=3]; 278[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos Zero) (fromInt (Pos Zero))) (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];278 -> 313[label="",style="solid", color="black", weight=3]; 279[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg (Succ vuz1900)) (fromInt (Pos Zero))) (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];279 -> 314[label="",style="solid", color="black", weight=3]; 280[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg Zero) (fromInt (Pos Zero))) (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];280 -> 315[label="",style="solid", color="black", weight=3]; 281[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos (Succ vuz1900)) (fromInt (Pos Zero))) (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];281 -> 316[label="",style="solid", color="black", weight=3]; 282[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos Zero) (fromInt (Pos Zero))) (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];282 -> 317[label="",style="solid", color="black", weight=3]; 283[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg (Succ vuz1900)) (fromInt (Pos Zero))) (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];283 -> 318[label="",style="solid", color="black", weight=3]; 284[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg Zero) (fromInt (Pos Zero))) (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];284 -> 319[label="",style="solid", color="black", weight=3]; 285 -> 320[label="",style="dashed", color="red", weight=0]; 285[label="Integer vuz30 * signumReal2 (Integer (primMulInt vuz130 vuz140)) (Integer (primMulInt vuz130 vuz140) == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer (primMulInt vuz130 vuz140)) (Integer (primMulInt vuz130 vuz140) == fromInt (Pos Zero))) (abs (Integer (primMulInt vuz130 vuz140)))",fontsize=16,color="magenta"];285 -> 321[label="",style="dashed", color="magenta", weight=3]; 285 -> 322[label="",style="dashed", color="magenta", weight=3]; 285 -> 323[label="",style="dashed", color="magenta", weight=3]; 285 -> 324[label="",style="dashed", color="magenta", weight=3]; 285 -> 325[label="",style="dashed", color="magenta", weight=3]; 290[label="vuz140",fontsize=16,color="green",shape="box"];291[label="vuz130",fontsize=16,color="green",shape="box"];292[label="vuz140",fontsize=16,color="green",shape="box"];293[label="vuz130",fontsize=16,color="green",shape="box"];294[label="vuz140",fontsize=16,color="green",shape="box"];295[label="vuz130",fontsize=16,color="green",shape="box"];296[label="vuz140",fontsize=16,color="green",shape="box"];297[label="vuz130",fontsize=16,color="green",shape="box"];298[label="vuz140",fontsize=16,color="green",shape="box"];299[label="vuz130",fontsize=16,color="green",shape="box"];300[label="absReal1 (Integer vuz32) (not (compare (Integer vuz35) (Integer (Pos Zero)) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (compare (Integer vuz36) (Integer (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];300 -> 330[label="",style="solid", color="black", weight=3]; 301 -> 267[label="",style="dashed", color="red", weight=0]; 301[label="absReal1 (Integer vuz28) (not False) == fromInt (Pos Zero)",fontsize=16,color="magenta"];302[label="absReal1 (Integer vuz28) True == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];302 -> 331[label="",style="solid", color="black", weight=3]; 303[label="absReal1 (Integer vuz28) False == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];303 -> 332[label="",style="solid", color="black", weight=3]; 504[label="Pos (Succ vuz2500)",fontsize=16,color="green",shape="box"];505[label="absReal0 (Neg (Succ vuz2500)) True",fontsize=16,color="black",shape="box"];505 -> 542[label="",style="solid", color="black", weight=3]; 308[label="signumReal2 (Pos (Succ vuz2600)) False",fontsize=16,color="black",shape="box"];308 -> 337[label="",style="solid", color="black", weight=3]; 309[label="signumReal2 (Pos Zero) True",fontsize=16,color="black",shape="box"];309 -> 338[label="",style="solid", color="black", weight=3]; 310[label="signumReal2 (Neg (Succ vuz2600)) False",fontsize=16,color="black",shape="box"];310 -> 339[label="",style="solid", color="black", weight=3]; 311[label="signumReal2 (Neg Zero) True",fontsize=16,color="black",shape="box"];311 -> 340[label="",style="solid", color="black", weight=3]; 312[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos (Succ vuz1900)) (Pos Zero)) (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];312 -> 341[label="",style="solid", color="black", weight=3]; 313 -> 342[label="",style="dashed", color="red", weight=0]; 313[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Pos Zero) (Pos Zero)) (Pos Zero) vuz27)",fontsize=16,color="magenta"];313 -> 343[label="",style="dashed", color="magenta", weight=3]; 314[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg (Succ vuz1900)) (Pos Zero)) (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];314 -> 344[label="",style="solid", color="black", weight=3]; 315 -> 345[label="",style="dashed", color="red", weight=0]; 315[label="primQuotInt (Pos vuz180) (gcd2 (primEqInt (Neg Zero) (Pos Zero)) (Neg Zero) vuz27)",fontsize=16,color="magenta"];315 -> 346[label="",style="dashed", color="magenta", weight=3]; 316[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos (Succ vuz1900)) (Pos Zero)) (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];316 -> 347[label="",style="solid", color="black", weight=3]; 317 -> 348[label="",style="dashed", color="red", weight=0]; 317[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Pos Zero) (Pos Zero)) (Pos Zero) vuz27)",fontsize=16,color="magenta"];317 -> 349[label="",style="dashed", color="magenta", weight=3]; 318[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg (Succ vuz1900)) (Pos Zero)) (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];318 -> 350[label="",style="solid", color="black", weight=3]; 319 -> 351[label="",style="dashed", color="red", weight=0]; 319[label="primQuotInt (Neg vuz180) (gcd2 (primEqInt (Neg Zero) (Pos Zero)) (Neg Zero) vuz27)",fontsize=16,color="magenta"];319 -> 352[label="",style="dashed", color="magenta", weight=3]; 321 -> 25[label="",style="dashed", color="red", weight=0]; 321[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];321 -> 353[label="",style="dashed", color="magenta", weight=3]; 321 -> 354[label="",style="dashed", color="magenta", weight=3]; 322 -> 25[label="",style="dashed", color="red", weight=0]; 322[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];322 -> 355[label="",style="dashed", color="magenta", weight=3]; 322 -> 356[label="",style="dashed", color="magenta", weight=3]; 323 -> 25[label="",style="dashed", color="red", weight=0]; 323[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];323 -> 357[label="",style="dashed", color="magenta", weight=3]; 323 -> 358[label="",style="dashed", color="magenta", weight=3]; 324 -> 25[label="",style="dashed", color="red", weight=0]; 324[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];324 -> 359[label="",style="dashed", color="magenta", weight=3]; 324 -> 360[label="",style="dashed", color="magenta", weight=3]; 325 -> 25[label="",style="dashed", color="red", weight=0]; 325[label="primMulInt vuz130 vuz140",fontsize=16,color="magenta"];325 -> 361[label="",style="dashed", color="magenta", weight=3]; 325 -> 362[label="",style="dashed", color="magenta", weight=3]; 320[label="Integer vuz30 * signumReal2 (Integer vuz38) (Integer vuz40 == fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (Integer vuz41 == fromInt (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];320 -> 363[label="",style="solid", color="black", weight=3]; 330[label="absReal1 (Integer vuz32) (not (primCmpInt vuz35 (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt vuz35 (Pos Zero) == LT)))",fontsize=16,color="burlywood",shape="box"];5454[label="vuz35/Pos vuz350",fontsize=10,color="white",style="solid",shape="box"];330 -> 5454[label="",style="solid", color="burlywood", weight=9]; 5454 -> 368[label="",style="solid", color="burlywood", weight=3]; 5455[label="vuz35/Neg vuz350",fontsize=10,color="white",style="solid",shape="box"];330 -> 5455[label="",style="solid", color="burlywood", weight=9]; 5455 -> 369[label="",style="solid", color="burlywood", weight=3]; 331[label="Integer vuz28 == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];331 -> 370[label="",style="solid", color="black", weight=3]; 332[label="absReal0 (Integer vuz28) otherwise == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];332 -> 371[label="",style="solid", color="black", weight=3]; 542[label="`negate` Neg (Succ vuz2500)",fontsize=16,color="black",shape="box"];542 -> 577[label="",style="solid", color="black", weight=3]; 337[label="signumReal1 (Pos (Succ vuz2600)) (Pos (Succ vuz2600) > fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];337 -> 374[label="",style="solid", color="black", weight=3]; 339 -> 376[label="",style="dashed", color="red", weight=0]; 339[label="signumReal1 (Neg (Succ vuz2600)) (Neg (Succ vuz2600) > fromInt (Pos Zero))",fontsize=16,color="magenta"];339 -> 377[label="",style="dashed", color="magenta", weight=3]; 340 -> 338[label="",style="dashed", color="red", weight=0]; 340[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];341[label="primQuotInt (Pos vuz180) (gcd2 False (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];341 -> 378[label="",style="solid", color="black", weight=3]; 343 -> 305[label="",style="dashed", color="red", weight=0]; 343[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="magenta"];342[label="primQuotInt (Pos vuz180) (gcd2 vuz42 (Pos Zero) vuz27)",fontsize=16,color="burlywood",shape="triangle"];5456[label="vuz42/False",fontsize=10,color="white",style="solid",shape="box"];342 -> 5456[label="",style="solid", color="burlywood", weight=9]; 5456 -> 379[label="",style="solid", color="burlywood", weight=3]; 5457[label="vuz42/True",fontsize=10,color="white",style="solid",shape="box"];342 -> 5457[label="",style="solid", color="burlywood", weight=9]; 5457 -> 380[label="",style="solid", color="burlywood", weight=3]; 344[label="primQuotInt (Pos vuz180) (gcd2 False (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];344 -> 381[label="",style="solid", color="black", weight=3]; 346 -> 307[label="",style="dashed", color="red", weight=0]; 346[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="magenta"];345[label="primQuotInt (Pos vuz180) (gcd2 vuz43 (Neg Zero) vuz27)",fontsize=16,color="burlywood",shape="triangle"];5458[label="vuz43/False",fontsize=10,color="white",style="solid",shape="box"];345 -> 5458[label="",style="solid", color="burlywood", weight=9]; 5458 -> 382[label="",style="solid", color="burlywood", weight=3]; 5459[label="vuz43/True",fontsize=10,color="white",style="solid",shape="box"];345 -> 5459[label="",style="solid", color="burlywood", weight=9]; 5459 -> 383[label="",style="solid", color="burlywood", weight=3]; 347[label="primQuotInt (Neg vuz180) (gcd2 False (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];347 -> 384[label="",style="solid", color="black", weight=3]; 349 -> 305[label="",style="dashed", color="red", weight=0]; 349[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="magenta"];348[label="primQuotInt (Neg vuz180) (gcd2 vuz44 (Pos Zero) vuz27)",fontsize=16,color="burlywood",shape="triangle"];5460[label="vuz44/False",fontsize=10,color="white",style="solid",shape="box"];348 -> 5460[label="",style="solid", color="burlywood", weight=9]; 5460 -> 385[label="",style="solid", color="burlywood", weight=3]; 5461[label="vuz44/True",fontsize=10,color="white",style="solid",shape="box"];348 -> 5461[label="",style="solid", color="burlywood", weight=9]; 5461 -> 386[label="",style="solid", color="burlywood", weight=3]; 350[label="primQuotInt (Neg vuz180) (gcd2 False (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];350 -> 387[label="",style="solid", color="black", weight=3]; 352 -> 307[label="",style="dashed", color="red", weight=0]; 352[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="magenta"];351[label="primQuotInt (Neg vuz180) (gcd2 vuz45 (Neg Zero) vuz27)",fontsize=16,color="burlywood",shape="triangle"];5462[label="vuz45/False",fontsize=10,color="white",style="solid",shape="box"];351 -> 5462[label="",style="solid", color="burlywood", weight=9]; 5462 -> 388[label="",style="solid", color="burlywood", weight=3]; 5463[label="vuz45/True",fontsize=10,color="white",style="solid",shape="box"];351 -> 5463[label="",style="solid", color="burlywood", weight=9]; 5463 -> 389[label="",style="solid", color="burlywood", weight=3]; 353[label="vuz140",fontsize=16,color="green",shape="box"];354[label="vuz130",fontsize=16,color="green",shape="box"];355[label="vuz140",fontsize=16,color="green",shape="box"];356[label="vuz130",fontsize=16,color="green",shape="box"];357[label="vuz140",fontsize=16,color="green",shape="box"];358[label="vuz130",fontsize=16,color="green",shape="box"];359[label="vuz140",fontsize=16,color="green",shape="box"];360[label="vuz130",fontsize=16,color="green",shape="box"];361[label="vuz140",fontsize=16,color="green",shape="box"];362[label="vuz130",fontsize=16,color="green",shape="box"];363[label="Integer vuz30 * signumReal2 (Integer vuz38) (Integer vuz40 == Integer (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (Integer vuz41 == Integer (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];363 -> 390[label="",style="solid", color="black", weight=3]; 368[label="absReal1 (Integer vuz32) (not (primCmpInt (Pos vuz350) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Pos vuz350) (Pos Zero) == LT)))",fontsize=16,color="burlywood",shape="box"];5464[label="vuz350/Succ vuz3500",fontsize=10,color="white",style="solid",shape="box"];368 -> 5464[label="",style="solid", color="burlywood", weight=9]; 5464 -> 395[label="",style="solid", color="burlywood", weight=3]; 5465[label="vuz350/Zero",fontsize=10,color="white",style="solid",shape="box"];368 -> 5465[label="",style="solid", color="burlywood", weight=9]; 5465 -> 396[label="",style="solid", color="burlywood", weight=3]; 369[label="absReal1 (Integer vuz32) (not (primCmpInt (Neg vuz350) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Neg vuz350) (Pos Zero) == LT)))",fontsize=16,color="burlywood",shape="box"];5466[label="vuz350/Succ vuz3500",fontsize=10,color="white",style="solid",shape="box"];369 -> 5466[label="",style="solid", color="burlywood", weight=9]; 5466 -> 397[label="",style="solid", color="burlywood", weight=3]; 5467[label="vuz350/Zero",fontsize=10,color="white",style="solid",shape="box"];369 -> 5467[label="",style="solid", color="burlywood", weight=9]; 5467 -> 398[label="",style="solid", color="burlywood", weight=3]; 370[label="Integer vuz28 == Integer (Pos Zero)",fontsize=16,color="black",shape="box"];370 -> 399[label="",style="solid", color="black", weight=3]; 371[label="absReal0 (Integer vuz28) True == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];371 -> 400[label="",style="solid", color="black", weight=3]; 577 -> 471[label="",style="dashed", color="red", weight=0]; 577[label="primNegInt (Neg (Succ vuz2500))",fontsize=16,color="magenta"];577 -> 624[label="",style="dashed", color="magenta", weight=3]; 374 -> 403[label="",style="dashed", color="red", weight=0]; 374[label="signumReal1 (Pos (Succ vuz2600)) (compare (Pos (Succ vuz2600)) (fromInt (Pos Zero)) == GT)",fontsize=16,color="magenta"];374 -> 404[label="",style="dashed", color="magenta", weight=3]; 377 -> 338[label="",style="dashed", color="red", weight=0]; 377[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];376[label="signumReal1 (Neg (Succ vuz2600)) (Neg (Succ vuz2600) > vuz46)",fontsize=16,color="black",shape="triangle"];376 -> 405[label="",style="solid", color="black", weight=3]; 378[label="primQuotInt (Pos vuz180) (gcd0 (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];378 -> 406[label="",style="solid", color="black", weight=3]; 305[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="triangle"];305 -> 334[label="",style="solid", color="black", weight=3]; 379[label="primQuotInt (Pos vuz180) (gcd2 False (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];379 -> 407[label="",style="solid", color="black", weight=3]; 380[label="primQuotInt (Pos vuz180) (gcd2 True (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];380 -> 408[label="",style="solid", color="black", weight=3]; 381[label="primQuotInt (Pos vuz180) (gcd0 (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];381 -> 409[label="",style="solid", color="black", weight=3]; 307[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="triangle"];307 -> 336[label="",style="solid", color="black", weight=3]; 382[label="primQuotInt (Pos vuz180) (gcd2 False (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];382 -> 410[label="",style="solid", color="black", weight=3]; 383[label="primQuotInt (Pos vuz180) (gcd2 True (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];383 -> 411[label="",style="solid", color="black", weight=3]; 384[label="primQuotInt (Neg vuz180) (gcd0 (Pos (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];384 -> 412[label="",style="solid", color="black", weight=3]; 385[label="primQuotInt (Neg vuz180) (gcd2 False (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];385 -> 413[label="",style="solid", color="black", weight=3]; 386[label="primQuotInt (Neg vuz180) (gcd2 True (Pos Zero) vuz27)",fontsize=16,color="black",shape="box"];386 -> 414[label="",style="solid", color="black", weight=3]; 387[label="primQuotInt (Neg vuz180) (gcd0 (Neg (Succ vuz1900)) vuz27)",fontsize=16,color="black",shape="box"];387 -> 415[label="",style="solid", color="black", weight=3]; 388[label="primQuotInt (Neg vuz180) (gcd2 False (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];388 -> 416[label="",style="solid", color="black", weight=3]; 389[label="primQuotInt (Neg vuz180) (gcd2 True (Neg Zero) vuz27)",fontsize=16,color="black",shape="box"];389 -> 417[label="",style="solid", color="black", weight=3]; 390[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt vuz40 (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt vuz40 (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5468[label="vuz40/Pos vuz400",fontsize=10,color="white",style="solid",shape="box"];390 -> 5468[label="",style="solid", color="burlywood", weight=9]; 5468 -> 418[label="",style="solid", color="burlywood", weight=3]; 5469[label="vuz40/Neg vuz400",fontsize=10,color="white",style="solid",shape="box"];390 -> 5469[label="",style="solid", color="burlywood", weight=9]; 5469 -> 419[label="",style="solid", color="burlywood", weight=3]; 395[label="absReal1 (Integer vuz32) (not (primCmpInt (Pos (Succ vuz3500)) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Pos (Succ vuz3500)) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];395 -> 424[label="",style="solid", color="black", weight=3]; 396[label="absReal1 (Integer vuz32) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];396 -> 425[label="",style="solid", color="black", weight=3]; 397[label="absReal1 (Integer vuz32) (not (primCmpInt (Neg (Succ vuz3500)) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Neg (Succ vuz3500)) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];397 -> 426[label="",style="solid", color="black", weight=3]; 398[label="absReal1 (Integer vuz32) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];398 -> 427[label="",style="solid", color="black", weight=3]; 399[label="primEqInt vuz28 (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5470[label="vuz28/Pos vuz280",fontsize=10,color="white",style="solid",shape="box"];399 -> 5470[label="",style="solid", color="burlywood", weight=9]; 5470 -> 428[label="",style="solid", color="burlywood", weight=3]; 5471[label="vuz28/Neg vuz280",fontsize=10,color="white",style="solid",shape="box"];399 -> 5471[label="",style="solid", color="burlywood", weight=9]; 5471 -> 429[label="",style="solid", color="burlywood", weight=3]; 400[label="`negate` Integer vuz28 == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];400 -> 430[label="",style="solid", color="black", weight=3]; 624[label="Neg (Succ vuz2500)",fontsize=16,color="green",shape="box"];471[label="primNegInt vuz28",fontsize=16,color="burlywood",shape="triangle"];5472[label="vuz28/Pos vuz280",fontsize=10,color="white",style="solid",shape="box"];471 -> 5472[label="",style="solid", color="burlywood", weight=9]; 5472 -> 513[label="",style="solid", color="burlywood", weight=3]; 5473[label="vuz28/Neg vuz280",fontsize=10,color="white",style="solid",shape="box"];471 -> 5473[label="",style="solid", color="burlywood", weight=9]; 5473 -> 514[label="",style="solid", color="burlywood", weight=3]; 404 -> 338[label="",style="dashed", color="red", weight=0]; 404[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];403[label="signumReal1 (Pos (Succ vuz2600)) (compare (Pos (Succ vuz2600)) vuz48 == GT)",fontsize=16,color="black",shape="triangle"];403 -> 432[label="",style="solid", color="black", weight=3]; 405[label="signumReal1 (Neg (Succ vuz2600)) (compare (Neg (Succ vuz2600)) vuz46 == GT)",fontsize=16,color="black",shape="box"];405 -> 433[label="",style="solid", color="black", weight=3]; 406 -> 434[label="",style="dashed", color="red", weight=0]; 406[label="primQuotInt (Pos vuz180) (gcd0Gcd' (abs (Pos (Succ vuz1900))) (abs vuz27))",fontsize=16,color="magenta"];406 -> 435[label="",style="dashed", color="magenta", weight=3]; 406 -> 436[label="",style="dashed", color="magenta", weight=3]; 334[label="True",fontsize=16,color="green",shape="box"];407[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) vuz27)",fontsize=16,color="black",shape="triangle"];407 -> 439[label="",style="solid", color="black", weight=3]; 408 -> 440[label="",style="dashed", color="red", weight=0]; 408[label="primQuotInt (Pos vuz180) (gcd1 (vuz27 == fromInt (Pos Zero)) (Pos Zero) vuz27)",fontsize=16,color="magenta"];408 -> 441[label="",style="dashed", color="magenta", weight=3]; 409 -> 434[label="",style="dashed", color="red", weight=0]; 409[label="primQuotInt (Pos vuz180) (gcd0Gcd' (abs (Neg (Succ vuz1900))) (abs vuz27))",fontsize=16,color="magenta"];409 -> 437[label="",style="dashed", color="magenta", weight=3]; 409 -> 438[label="",style="dashed", color="magenta", weight=3]; 336[label="True",fontsize=16,color="green",shape="box"];410[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) vuz27)",fontsize=16,color="black",shape="triangle"];410 -> 442[label="",style="solid", color="black", weight=3]; 411 -> 443[label="",style="dashed", color="red", weight=0]; 411[label="primQuotInt (Pos vuz180) (gcd1 (vuz27 == fromInt (Pos Zero)) (Neg Zero) vuz27)",fontsize=16,color="magenta"];411 -> 444[label="",style="dashed", color="magenta", weight=3]; 412 -> 445[label="",style="dashed", color="red", weight=0]; 412[label="primQuotInt (Neg vuz180) (gcd0Gcd' (abs (Pos (Succ vuz1900))) (abs vuz27))",fontsize=16,color="magenta"];412 -> 446[label="",style="dashed", color="magenta", weight=3]; 412 -> 447[label="",style="dashed", color="magenta", weight=3]; 413[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) vuz27)",fontsize=16,color="black",shape="triangle"];413 -> 450[label="",style="solid", color="black", weight=3]; 414 -> 451[label="",style="dashed", color="red", weight=0]; 414[label="primQuotInt (Neg vuz180) (gcd1 (vuz27 == fromInt (Pos Zero)) (Pos Zero) vuz27)",fontsize=16,color="magenta"];414 -> 452[label="",style="dashed", color="magenta", weight=3]; 415 -> 445[label="",style="dashed", color="red", weight=0]; 415[label="primQuotInt (Neg vuz180) (gcd0Gcd' (abs (Neg (Succ vuz1900))) (abs vuz27))",fontsize=16,color="magenta"];415 -> 448[label="",style="dashed", color="magenta", weight=3]; 415 -> 449[label="",style="dashed", color="magenta", weight=3]; 416[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) vuz27)",fontsize=16,color="black",shape="triangle"];416 -> 453[label="",style="solid", color="black", weight=3]; 417 -> 454[label="",style="dashed", color="red", weight=0]; 417[label="primQuotInt (Neg vuz180) (gcd1 (vuz27 == fromInt (Pos Zero)) (Neg Zero) vuz27)",fontsize=16,color="magenta"];417 -> 455[label="",style="dashed", color="magenta", weight=3]; 418[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Pos vuz400) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Pos vuz400) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5474[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];418 -> 5474[label="",style="solid", color="burlywood", weight=9]; 5474 -> 456[label="",style="solid", color="burlywood", weight=3]; 5475[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];418 -> 5475[label="",style="solid", color="burlywood", weight=9]; 5475 -> 457[label="",style="solid", color="burlywood", weight=3]; 419[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Neg vuz400) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Neg vuz400) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5476[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];419 -> 5476[label="",style="solid", color="burlywood", weight=9]; 5476 -> 458[label="",style="solid", color="burlywood", weight=3]; 5477[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];419 -> 5477[label="",style="solid", color="burlywood", weight=9]; 5477 -> 459[label="",style="solid", color="burlywood", weight=3]; 424[label="absReal1 (Integer vuz32) (not (primCmpNat (Succ vuz3500) Zero == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (primCmpNat (Succ vuz3500) Zero == LT)))",fontsize=16,color="black",shape="box"];424 -> 464[label="",style="solid", color="black", weight=3]; 425[label="absReal1 (Integer vuz32) (not (EQ == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (EQ == LT)))",fontsize=16,color="black",shape="triangle"];425 -> 465[label="",style="solid", color="black", weight=3]; 426[label="absReal1 (Integer vuz32) (not (LT == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (LT == LT)))",fontsize=16,color="black",shape="box"];426 -> 466[label="",style="solid", color="black", weight=3]; 427 -> 425[label="",style="dashed", color="red", weight=0]; 427[label="absReal1 (Integer vuz32) (not (EQ == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (EQ == LT)))",fontsize=16,color="magenta"];428[label="primEqInt (Pos vuz280) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5478[label="vuz280/Succ vuz2800",fontsize=10,color="white",style="solid",shape="box"];428 -> 5478[label="",style="solid", color="burlywood", weight=9]; 5478 -> 467[label="",style="solid", color="burlywood", weight=3]; 5479[label="vuz280/Zero",fontsize=10,color="white",style="solid",shape="box"];428 -> 5479[label="",style="solid", color="burlywood", weight=9]; 5479 -> 468[label="",style="solid", color="burlywood", weight=3]; 429[label="primEqInt (Neg vuz280) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5480[label="vuz280/Succ vuz2800",fontsize=10,color="white",style="solid",shape="box"];429 -> 5480[label="",style="solid", color="burlywood", weight=9]; 5480 -> 469[label="",style="solid", color="burlywood", weight=3]; 5481[label="vuz280/Zero",fontsize=10,color="white",style="solid",shape="box"];429 -> 5481[label="",style="solid", color="burlywood", weight=9]; 5481 -> 470[label="",style="solid", color="burlywood", weight=3]; 430 -> 331[label="",style="dashed", color="red", weight=0]; 430[label="Integer (primNegInt vuz28) == fromInt (Pos Zero)",fontsize=16,color="magenta"];430 -> 471[label="",style="dashed", color="magenta", weight=3]; 513[label="primNegInt (Pos vuz280)",fontsize=16,color="black",shape="box"];513 -> 545[label="",style="solid", color="black", weight=3]; 514[label="primNegInt (Neg vuz280)",fontsize=16,color="black",shape="box"];514 -> 546[label="",style="solid", color="black", weight=3]; 432[label="signumReal1 (Pos (Succ vuz2600)) (primCmpInt (Pos (Succ vuz2600)) vuz48 == GT)",fontsize=16,color="burlywood",shape="box"];5482[label="vuz48/Pos vuz480",fontsize=10,color="white",style="solid",shape="box"];432 -> 5482[label="",style="solid", color="burlywood", weight=9]; 5482 -> 474[label="",style="solid", color="burlywood", weight=3]; 5483[label="vuz48/Neg vuz480",fontsize=10,color="white",style="solid",shape="box"];432 -> 5483[label="",style="solid", color="burlywood", weight=9]; 5483 -> 475[label="",style="solid", color="burlywood", weight=3]; 433[label="signumReal1 (Neg (Succ vuz2600)) (primCmpInt (Neg (Succ vuz2600)) vuz46 == GT)",fontsize=16,color="burlywood",shape="box"];5484[label="vuz46/Pos vuz460",fontsize=10,color="white",style="solid",shape="box"];433 -> 5484[label="",style="solid", color="burlywood", weight=9]; 5484 -> 476[label="",style="solid", color="burlywood", weight=3]; 5485[label="vuz46/Neg vuz460",fontsize=10,color="white",style="solid",shape="box"];433 -> 5485[label="",style="solid", color="burlywood", weight=9]; 5485 -> 477[label="",style="solid", color="burlywood", weight=3]; 435 -> 123[label="",style="dashed", color="red", weight=0]; 435[label="abs (Pos (Succ vuz1900))",fontsize=16,color="magenta"];435 -> 478[label="",style="dashed", color="magenta", weight=3]; 436 -> 123[label="",style="dashed", color="red", weight=0]; 436[label="abs vuz27",fontsize=16,color="magenta"];436 -> 479[label="",style="dashed", color="magenta", weight=3]; 434[label="primQuotInt (Pos vuz180) (gcd0Gcd' vuz50 vuz49)",fontsize=16,color="black",shape="triangle"];434 -> 480[label="",style="solid", color="black", weight=3]; 439 -> 434[label="",style="dashed", color="red", weight=0]; 439[label="primQuotInt (Pos vuz180) (gcd0Gcd' (abs (Pos Zero)) (abs vuz27))",fontsize=16,color="magenta"];439 -> 481[label="",style="dashed", color="magenta", weight=3]; 439 -> 482[label="",style="dashed", color="magenta", weight=3]; 441 -> 338[label="",style="dashed", color="red", weight=0]; 441[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];440[label="primQuotInt (Pos vuz180) (gcd1 (vuz27 == vuz51) (Pos Zero) vuz27)",fontsize=16,color="black",shape="triangle"];440 -> 483[label="",style="solid", color="black", weight=3]; 437 -> 123[label="",style="dashed", color="red", weight=0]; 437[label="abs (Neg (Succ vuz1900))",fontsize=16,color="magenta"];437 -> 484[label="",style="dashed", color="magenta", weight=3]; 438 -> 123[label="",style="dashed", color="red", weight=0]; 438[label="abs vuz27",fontsize=16,color="magenta"];438 -> 485[label="",style="dashed", color="magenta", weight=3]; 442 -> 434[label="",style="dashed", color="red", weight=0]; 442[label="primQuotInt (Pos vuz180) (gcd0Gcd' (abs (Neg Zero)) (abs vuz27))",fontsize=16,color="magenta"];442 -> 486[label="",style="dashed", color="magenta", weight=3]; 442 -> 487[label="",style="dashed", color="magenta", weight=3]; 444 -> 338[label="",style="dashed", color="red", weight=0]; 444[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];443[label="primQuotInt (Pos vuz180) (gcd1 (vuz27 == vuz52) (Neg Zero) vuz27)",fontsize=16,color="black",shape="triangle"];443 -> 488[label="",style="solid", color="black", weight=3]; 446 -> 123[label="",style="dashed", color="red", weight=0]; 446[label="abs (Pos (Succ vuz1900))",fontsize=16,color="magenta"];446 -> 489[label="",style="dashed", color="magenta", weight=3]; 447 -> 123[label="",style="dashed", color="red", weight=0]; 447[label="abs vuz27",fontsize=16,color="magenta"];447 -> 490[label="",style="dashed", color="magenta", weight=3]; 445[label="primQuotInt (Neg vuz180) (gcd0Gcd' vuz54 vuz53)",fontsize=16,color="black",shape="triangle"];445 -> 491[label="",style="solid", color="black", weight=3]; 450 -> 445[label="",style="dashed", color="red", weight=0]; 450[label="primQuotInt (Neg vuz180) (gcd0Gcd' (abs (Pos Zero)) (abs vuz27))",fontsize=16,color="magenta"];450 -> 492[label="",style="dashed", color="magenta", weight=3]; 450 -> 493[label="",style="dashed", color="magenta", weight=3]; 452 -> 338[label="",style="dashed", color="red", weight=0]; 452[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];451[label="primQuotInt (Neg vuz180) (gcd1 (vuz27 == vuz55) (Pos Zero) vuz27)",fontsize=16,color="black",shape="triangle"];451 -> 494[label="",style="solid", color="black", weight=3]; 448 -> 123[label="",style="dashed", color="red", weight=0]; 448[label="abs (Neg (Succ vuz1900))",fontsize=16,color="magenta"];448 -> 495[label="",style="dashed", color="magenta", weight=3]; 449 -> 123[label="",style="dashed", color="red", weight=0]; 449[label="abs vuz27",fontsize=16,color="magenta"];449 -> 496[label="",style="dashed", color="magenta", weight=3]; 453 -> 445[label="",style="dashed", color="red", weight=0]; 453[label="primQuotInt (Neg vuz180) (gcd0Gcd' (abs (Neg Zero)) (abs vuz27))",fontsize=16,color="magenta"];453 -> 497[label="",style="dashed", color="magenta", weight=3]; 453 -> 498[label="",style="dashed", color="magenta", weight=3]; 455 -> 338[label="",style="dashed", color="red", weight=0]; 455[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];454[label="primQuotInt (Neg vuz180) (gcd1 (vuz27 == vuz56) (Neg Zero) vuz27)",fontsize=16,color="black",shape="triangle"];454 -> 499[label="",style="solid", color="black", weight=3]; 456[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Pos (Succ vuz4000)) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Pos (Succ vuz4000)) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];456 -> 500[label="",style="solid", color="black", weight=3]; 457[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Pos Zero) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Pos Zero) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];457 -> 501[label="",style="solid", color="black", weight=3]; 458[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Neg (Succ vuz4000)) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Neg (Succ vuz4000)) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];458 -> 502[label="",style="solid", color="black", weight=3]; 459[label="Integer vuz30 * signumReal2 (Integer vuz38) (primEqInt (Neg Zero) (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) (primEqInt (Neg Zero) (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];459 -> 503[label="",style="solid", color="black", weight=3]; 464[label="absReal1 (Integer vuz32) (not (GT == LT)) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not (GT == LT)))",fontsize=16,color="black",shape="box"];464 -> 506[label="",style="solid", color="black", weight=3]; 465[label="absReal1 (Integer vuz32) (not False) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not False))",fontsize=16,color="black",shape="triangle"];465 -> 507[label="",style="solid", color="black", weight=3]; 466[label="absReal1 (Integer vuz32) (not True) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not True))",fontsize=16,color="black",shape="box"];466 -> 508[label="",style="solid", color="black", weight=3]; 467[label="primEqInt (Pos (Succ vuz2800)) (Pos Zero)",fontsize=16,color="black",shape="box"];467 -> 509[label="",style="solid", color="black", weight=3]; 468[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];468 -> 510[label="",style="solid", color="black", weight=3]; 469[label="primEqInt (Neg (Succ vuz2800)) (Pos Zero)",fontsize=16,color="black",shape="box"];469 -> 511[label="",style="solid", color="black", weight=3]; 470[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];470 -> 512[label="",style="solid", color="black", weight=3]; 545[label="Neg vuz280",fontsize=16,color="green",shape="box"];546[label="Pos vuz280",fontsize=16,color="green",shape="box"];474[label="signumReal1 (Pos (Succ vuz2600)) (primCmpInt (Pos (Succ vuz2600)) (Pos vuz480) == GT)",fontsize=16,color="black",shape="box"];474 -> 518[label="",style="solid", color="black", weight=3]; 475[label="signumReal1 (Pos (Succ vuz2600)) (primCmpInt (Pos (Succ vuz2600)) (Neg vuz480) == GT)",fontsize=16,color="black",shape="box"];475 -> 519[label="",style="solid", color="black", weight=3]; 476[label="signumReal1 (Neg (Succ vuz2600)) (primCmpInt (Neg (Succ vuz2600)) (Pos vuz460) == GT)",fontsize=16,color="black",shape="box"];476 -> 520[label="",style="solid", color="black", weight=3]; 477[label="signumReal1 (Neg (Succ vuz2600)) (primCmpInt (Neg (Succ vuz2600)) (Neg vuz460) == GT)",fontsize=16,color="black",shape="box"];477 -> 521[label="",style="solid", color="black", weight=3]; 478[label="Pos (Succ vuz1900)",fontsize=16,color="green",shape="box"];479[label="vuz27",fontsize=16,color="green",shape="box"];480[label="primQuotInt (Pos vuz180) (gcd0Gcd'2 vuz50 vuz49)",fontsize=16,color="black",shape="box"];480 -> 522[label="",style="solid", color="black", weight=3]; 481 -> 123[label="",style="dashed", color="red", weight=0]; 481[label="abs (Pos Zero)",fontsize=16,color="magenta"];481 -> 523[label="",style="dashed", color="magenta", weight=3]; 482 -> 123[label="",style="dashed", color="red", weight=0]; 482[label="abs vuz27",fontsize=16,color="magenta"];482 -> 524[label="",style="dashed", color="magenta", weight=3]; 483[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt vuz27 vuz51) (Pos Zero) vuz27)",fontsize=16,color="burlywood",shape="box"];5486[label="vuz27/Pos vuz270",fontsize=10,color="white",style="solid",shape="box"];483 -> 5486[label="",style="solid", color="burlywood", weight=9]; 5486 -> 525[label="",style="solid", color="burlywood", weight=3]; 5487[label="vuz27/Neg vuz270",fontsize=10,color="white",style="solid",shape="box"];483 -> 5487[label="",style="solid", color="burlywood", weight=9]; 5487 -> 526[label="",style="solid", color="burlywood", weight=3]; 484[label="Neg (Succ vuz1900)",fontsize=16,color="green",shape="box"];485[label="vuz27",fontsize=16,color="green",shape="box"];486 -> 123[label="",style="dashed", color="red", weight=0]; 486[label="abs (Neg Zero)",fontsize=16,color="magenta"];486 -> 527[label="",style="dashed", color="magenta", weight=3]; 487 -> 123[label="",style="dashed", color="red", weight=0]; 487[label="abs vuz27",fontsize=16,color="magenta"];487 -> 528[label="",style="dashed", color="magenta", weight=3]; 488[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt vuz27 vuz52) (Neg Zero) vuz27)",fontsize=16,color="burlywood",shape="box"];5488[label="vuz27/Pos vuz270",fontsize=10,color="white",style="solid",shape="box"];488 -> 5488[label="",style="solid", color="burlywood", weight=9]; 5488 -> 529[label="",style="solid", color="burlywood", weight=3]; 5489[label="vuz27/Neg vuz270",fontsize=10,color="white",style="solid",shape="box"];488 -> 5489[label="",style="solid", color="burlywood", weight=9]; 5489 -> 530[label="",style="solid", color="burlywood", weight=3]; 489[label="Pos (Succ vuz1900)",fontsize=16,color="green",shape="box"];490[label="vuz27",fontsize=16,color="green",shape="box"];491[label="primQuotInt (Neg vuz180) (gcd0Gcd'2 vuz54 vuz53)",fontsize=16,color="black",shape="box"];491 -> 531[label="",style="solid", color="black", weight=3]; 492 -> 123[label="",style="dashed", color="red", weight=0]; 492[label="abs (Pos Zero)",fontsize=16,color="magenta"];492 -> 532[label="",style="dashed", color="magenta", weight=3]; 493 -> 123[label="",style="dashed", color="red", weight=0]; 493[label="abs vuz27",fontsize=16,color="magenta"];493 -> 533[label="",style="dashed", color="magenta", weight=3]; 494[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt vuz27 vuz55) (Pos Zero) vuz27)",fontsize=16,color="burlywood",shape="box"];5490[label="vuz27/Pos vuz270",fontsize=10,color="white",style="solid",shape="box"];494 -> 5490[label="",style="solid", color="burlywood", weight=9]; 5490 -> 534[label="",style="solid", color="burlywood", weight=3]; 5491[label="vuz27/Neg vuz270",fontsize=10,color="white",style="solid",shape="box"];494 -> 5491[label="",style="solid", color="burlywood", weight=9]; 5491 -> 535[label="",style="solid", color="burlywood", weight=3]; 495[label="Neg (Succ vuz1900)",fontsize=16,color="green",shape="box"];496[label="vuz27",fontsize=16,color="green",shape="box"];497 -> 123[label="",style="dashed", color="red", weight=0]; 497[label="abs (Neg Zero)",fontsize=16,color="magenta"];497 -> 536[label="",style="dashed", color="magenta", weight=3]; 498 -> 123[label="",style="dashed", color="red", weight=0]; 498[label="abs vuz27",fontsize=16,color="magenta"];498 -> 537[label="",style="dashed", color="magenta", weight=3]; 499[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt vuz27 vuz56) (Neg Zero) vuz27)",fontsize=16,color="burlywood",shape="box"];5492[label="vuz27/Pos vuz270",fontsize=10,color="white",style="solid",shape="box"];499 -> 5492[label="",style="solid", color="burlywood", weight=9]; 5492 -> 538[label="",style="solid", color="burlywood", weight=3]; 5493[label="vuz27/Neg vuz270",fontsize=10,color="white",style="solid",shape="box"];499 -> 5493[label="",style="solid", color="burlywood", weight=9]; 5493 -> 539[label="",style="solid", color="burlywood", weight=3]; 500[label="Integer vuz30 * signumReal2 (Integer vuz38) False `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) False) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];500 -> 540[label="",style="solid", color="black", weight=3]; 501[label="Integer vuz30 * signumReal2 (Integer vuz38) True `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];501 -> 541[label="",style="solid", color="black", weight=3]; 502 -> 500[label="",style="dashed", color="red", weight=0]; 502[label="Integer vuz30 * signumReal2 (Integer vuz38) False `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) False) (abs (Integer vuz37))",fontsize=16,color="magenta"];503 -> 501[label="",style="dashed", color="red", weight=0]; 503[label="Integer vuz30 * signumReal2 (Integer vuz38) True `quot` reduce2D (Integer vuz31 * signumReal2 (Integer vuz39) True) (abs (Integer vuz37))",fontsize=16,color="magenta"];506 -> 465[label="",style="dashed", color="red", weight=0]; 506[label="absReal1 (Integer vuz32) (not False) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) (not False))",fontsize=16,color="magenta"];507[label="absReal1 (Integer vuz32) True `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) True)",fontsize=16,color="black",shape="box"];507 -> 543[label="",style="solid", color="black", weight=3]; 508[label="absReal1 (Integer vuz32) False `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal1 (Integer vuz33) False)",fontsize=16,color="black",shape="box"];508 -> 544[label="",style="solid", color="black", weight=3]; 509[label="False",fontsize=16,color="green",shape="box"];510[label="True",fontsize=16,color="green",shape="box"];511[label="False",fontsize=16,color="green",shape="box"];512[label="True",fontsize=16,color="green",shape="box"];518 -> 2211[label="",style="dashed", color="red", weight=0]; 518[label="signumReal1 (Pos (Succ vuz2600)) (primCmpNat (Succ vuz2600) vuz480 == GT)",fontsize=16,color="magenta"];518 -> 2212[label="",style="dashed", color="magenta", weight=3]; 518 -> 2213[label="",style="dashed", color="magenta", weight=3]; 518 -> 2214[label="",style="dashed", color="magenta", weight=3]; 519[label="signumReal1 (Pos (Succ vuz2600)) (GT == GT)",fontsize=16,color="black",shape="triangle"];519 -> 551[label="",style="solid", color="black", weight=3]; 520[label="signumReal1 (Neg (Succ vuz2600)) (LT == GT)",fontsize=16,color="black",shape="triangle"];520 -> 552[label="",style="solid", color="black", weight=3]; 521 -> 2267[label="",style="dashed", color="red", weight=0]; 521[label="signumReal1 (Neg (Succ vuz2600)) (primCmpNat vuz460 (Succ vuz2600) == GT)",fontsize=16,color="magenta"];521 -> 2268[label="",style="dashed", color="magenta", weight=3]; 521 -> 2269[label="",style="dashed", color="magenta", weight=3]; 521 -> 2270[label="",style="dashed", color="magenta", weight=3]; 522 -> 555[label="",style="dashed", color="red", weight=0]; 522[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (vuz49 == fromInt (Pos Zero)) vuz50 vuz49)",fontsize=16,color="magenta"];522 -> 556[label="",style="dashed", color="magenta", weight=3]; 523[label="Pos Zero",fontsize=16,color="green",shape="box"];524[label="vuz27",fontsize=16,color="green",shape="box"];525[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos vuz270) vuz51) (Pos Zero) (Pos vuz270))",fontsize=16,color="burlywood",shape="box"];5494[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];525 -> 5494[label="",style="solid", color="burlywood", weight=9]; 5494 -> 557[label="",style="solid", color="burlywood", weight=3]; 5495[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];525 -> 5495[label="",style="solid", color="burlywood", weight=9]; 5495 -> 558[label="",style="solid", color="burlywood", weight=3]; 526[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg vuz270) vuz51) (Pos Zero) (Neg vuz270))",fontsize=16,color="burlywood",shape="box"];5496[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];526 -> 5496[label="",style="solid", color="burlywood", weight=9]; 5496 -> 559[label="",style="solid", color="burlywood", weight=3]; 5497[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];526 -> 5497[label="",style="solid", color="burlywood", weight=9]; 5497 -> 560[label="",style="solid", color="burlywood", weight=3]; 527[label="Neg Zero",fontsize=16,color="green",shape="box"];528[label="vuz27",fontsize=16,color="green",shape="box"];529[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos vuz270) vuz52) (Neg Zero) (Pos vuz270))",fontsize=16,color="burlywood",shape="box"];5498[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];529 -> 5498[label="",style="solid", color="burlywood", weight=9]; 5498 -> 561[label="",style="solid", color="burlywood", weight=3]; 5499[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];529 -> 5499[label="",style="solid", color="burlywood", weight=9]; 5499 -> 562[label="",style="solid", color="burlywood", weight=3]; 530[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg vuz270) vuz52) (Neg Zero) (Neg vuz270))",fontsize=16,color="burlywood",shape="box"];5500[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];530 -> 5500[label="",style="solid", color="burlywood", weight=9]; 5500 -> 563[label="",style="solid", color="burlywood", weight=3]; 5501[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];530 -> 5501[label="",style="solid", color="burlywood", weight=9]; 5501 -> 564[label="",style="solid", color="burlywood", weight=3]; 531 -> 565[label="",style="dashed", color="red", weight=0]; 531[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (vuz53 == fromInt (Pos Zero)) vuz54 vuz53)",fontsize=16,color="magenta"];531 -> 566[label="",style="dashed", color="magenta", weight=3]; 532[label="Pos Zero",fontsize=16,color="green",shape="box"];533[label="vuz27",fontsize=16,color="green",shape="box"];534[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos vuz270) vuz55) (Pos Zero) (Pos vuz270))",fontsize=16,color="burlywood",shape="box"];5502[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];534 -> 5502[label="",style="solid", color="burlywood", weight=9]; 5502 -> 567[label="",style="solid", color="burlywood", weight=3]; 5503[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];534 -> 5503[label="",style="solid", color="burlywood", weight=9]; 5503 -> 568[label="",style="solid", color="burlywood", weight=3]; 535[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg vuz270) vuz55) (Pos Zero) (Neg vuz270))",fontsize=16,color="burlywood",shape="box"];5504[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];535 -> 5504[label="",style="solid", color="burlywood", weight=9]; 5504 -> 569[label="",style="solid", color="burlywood", weight=3]; 5505[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];535 -> 5505[label="",style="solid", color="burlywood", weight=9]; 5505 -> 570[label="",style="solid", color="burlywood", weight=3]; 536[label="Neg Zero",fontsize=16,color="green",shape="box"];537[label="vuz27",fontsize=16,color="green",shape="box"];538[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos vuz270) vuz56) (Neg Zero) (Pos vuz270))",fontsize=16,color="burlywood",shape="box"];5506[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];538 -> 5506[label="",style="solid", color="burlywood", weight=9]; 5506 -> 571[label="",style="solid", color="burlywood", weight=3]; 5507[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];538 -> 5507[label="",style="solid", color="burlywood", weight=9]; 5507 -> 572[label="",style="solid", color="burlywood", weight=3]; 539[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg vuz270) vuz56) (Neg Zero) (Neg vuz270))",fontsize=16,color="burlywood",shape="box"];5508[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];539 -> 5508[label="",style="solid", color="burlywood", weight=9]; 5508 -> 573[label="",style="solid", color="burlywood", weight=3]; 5509[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];539 -> 5509[label="",style="solid", color="burlywood", weight=9]; 5509 -> 574[label="",style="solid", color="burlywood", weight=3]; 540[label="Integer vuz30 * signumReal1 (Integer vuz38) (Integer vuz38 > fromInt (Pos Zero)) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer vuz38) (Integer vuz38 > fromInt (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];540 -> 575[label="",style="solid", color="black", weight=3]; 541[label="Integer vuz30 * fromInt (Pos Zero) `quot` reduce2D (Integer vuz31 * fromInt (Pos Zero)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];541 -> 576[label="",style="solid", color="black", weight=3]; 543[label="Integer vuz32 `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="black",shape="triangle"];543 -> 578[label="",style="solid", color="black", weight=3]; 544[label="absReal0 (Integer vuz32) otherwise `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal0 (Integer vuz32) otherwise)",fontsize=16,color="black",shape="box"];544 -> 579[label="",style="solid", color="black", weight=3]; 2212[label="vuz2600",fontsize=16,color="green",shape="box"];2213[label="Succ vuz2600",fontsize=16,color="green",shape="box"];2214[label="vuz480",fontsize=16,color="green",shape="box"];2211[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat vuz135 vuz136 == GT)",fontsize=16,color="burlywood",shape="triangle"];5510[label="vuz135/Succ vuz1350",fontsize=10,color="white",style="solid",shape="box"];2211 -> 5510[label="",style="solid", color="burlywood", weight=9]; 5510 -> 2242[label="",style="solid", color="burlywood", weight=3]; 5511[label="vuz135/Zero",fontsize=10,color="white",style="solid",shape="box"];2211 -> 5511[label="",style="solid", color="burlywood", weight=9]; 5511 -> 2243[label="",style="solid", color="burlywood", weight=3]; 551[label="signumReal1 (Pos (Succ vuz2600)) True",fontsize=16,color="black",shape="box"];551 -> 584[label="",style="solid", color="black", weight=3]; 552[label="signumReal1 (Neg (Succ vuz2600)) False",fontsize=16,color="black",shape="triangle"];552 -> 585[label="",style="solid", color="black", weight=3]; 2268[label="vuz2600",fontsize=16,color="green",shape="box"];2269[label="vuz460",fontsize=16,color="green",shape="box"];2270[label="Succ vuz2600",fontsize=16,color="green",shape="box"];2267[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat vuz139 vuz140 == GT)",fontsize=16,color="burlywood",shape="triangle"];5512[label="vuz139/Succ vuz1390",fontsize=10,color="white",style="solid",shape="box"];2267 -> 5512[label="",style="solid", color="burlywood", weight=9]; 5512 -> 2298[label="",style="solid", color="burlywood", weight=3]; 5513[label="vuz139/Zero",fontsize=10,color="white",style="solid",shape="box"];2267 -> 5513[label="",style="solid", color="burlywood", weight=9]; 5513 -> 2299[label="",style="solid", color="burlywood", weight=3]; 556 -> 338[label="",style="dashed", color="red", weight=0]; 556[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];555[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (vuz49 == vuz57) vuz50 vuz49)",fontsize=16,color="black",shape="triangle"];555 -> 588[label="",style="solid", color="black", weight=3]; 557[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) vuz51) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5514[label="vuz51/Pos vuz510",fontsize=10,color="white",style="solid",shape="box"];557 -> 5514[label="",style="solid", color="burlywood", weight=9]; 5514 -> 589[label="",style="solid", color="burlywood", weight=3]; 5515[label="vuz51/Neg vuz510",fontsize=10,color="white",style="solid",shape="box"];557 -> 5515[label="",style="solid", color="burlywood", weight=9]; 5515 -> 590[label="",style="solid", color="burlywood", weight=3]; 558[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) vuz51) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5516[label="vuz51/Pos vuz510",fontsize=10,color="white",style="solid",shape="box"];558 -> 5516[label="",style="solid", color="burlywood", weight=9]; 5516 -> 591[label="",style="solid", color="burlywood", weight=3]; 5517[label="vuz51/Neg vuz510",fontsize=10,color="white",style="solid",shape="box"];558 -> 5517[label="",style="solid", color="burlywood", weight=9]; 5517 -> 592[label="",style="solid", color="burlywood", weight=3]; 559[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) vuz51) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5518[label="vuz51/Pos vuz510",fontsize=10,color="white",style="solid",shape="box"];559 -> 5518[label="",style="solid", color="burlywood", weight=9]; 5518 -> 593[label="",style="solid", color="burlywood", weight=3]; 5519[label="vuz51/Neg vuz510",fontsize=10,color="white",style="solid",shape="box"];559 -> 5519[label="",style="solid", color="burlywood", weight=9]; 5519 -> 594[label="",style="solid", color="burlywood", weight=3]; 560[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) vuz51) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5520[label="vuz51/Pos vuz510",fontsize=10,color="white",style="solid",shape="box"];560 -> 5520[label="",style="solid", color="burlywood", weight=9]; 5520 -> 595[label="",style="solid", color="burlywood", weight=3]; 5521[label="vuz51/Neg vuz510",fontsize=10,color="white",style="solid",shape="box"];560 -> 5521[label="",style="solid", color="burlywood", weight=9]; 5521 -> 596[label="",style="solid", color="burlywood", weight=3]; 561[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) vuz52) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5522[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];561 -> 5522[label="",style="solid", color="burlywood", weight=9]; 5522 -> 597[label="",style="solid", color="burlywood", weight=3]; 5523[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];561 -> 5523[label="",style="solid", color="burlywood", weight=9]; 5523 -> 598[label="",style="solid", color="burlywood", weight=3]; 562[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) vuz52) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5524[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];562 -> 5524[label="",style="solid", color="burlywood", weight=9]; 5524 -> 599[label="",style="solid", color="burlywood", weight=3]; 5525[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];562 -> 5525[label="",style="solid", color="burlywood", weight=9]; 5525 -> 600[label="",style="solid", color="burlywood", weight=3]; 563[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) vuz52) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5526[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];563 -> 5526[label="",style="solid", color="burlywood", weight=9]; 5526 -> 601[label="",style="solid", color="burlywood", weight=3]; 5527[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];563 -> 5527[label="",style="solid", color="burlywood", weight=9]; 5527 -> 602[label="",style="solid", color="burlywood", weight=3]; 564[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) vuz52) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5528[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];564 -> 5528[label="",style="solid", color="burlywood", weight=9]; 5528 -> 603[label="",style="solid", color="burlywood", weight=3]; 5529[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];564 -> 5529[label="",style="solid", color="burlywood", weight=9]; 5529 -> 604[label="",style="solid", color="burlywood", weight=3]; 566 -> 338[label="",style="dashed", color="red", weight=0]; 566[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];565[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (vuz53 == vuz58) vuz54 vuz53)",fontsize=16,color="black",shape="triangle"];565 -> 605[label="",style="solid", color="black", weight=3]; 567[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) vuz55) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5530[label="vuz55/Pos vuz550",fontsize=10,color="white",style="solid",shape="box"];567 -> 5530[label="",style="solid", color="burlywood", weight=9]; 5530 -> 606[label="",style="solid", color="burlywood", weight=3]; 5531[label="vuz55/Neg vuz550",fontsize=10,color="white",style="solid",shape="box"];567 -> 5531[label="",style="solid", color="burlywood", weight=9]; 5531 -> 607[label="",style="solid", color="burlywood", weight=3]; 568[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) vuz55) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5532[label="vuz55/Pos vuz550",fontsize=10,color="white",style="solid",shape="box"];568 -> 5532[label="",style="solid", color="burlywood", weight=9]; 5532 -> 608[label="",style="solid", color="burlywood", weight=3]; 5533[label="vuz55/Neg vuz550",fontsize=10,color="white",style="solid",shape="box"];568 -> 5533[label="",style="solid", color="burlywood", weight=9]; 5533 -> 609[label="",style="solid", color="burlywood", weight=3]; 569[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) vuz55) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5534[label="vuz55/Pos vuz550",fontsize=10,color="white",style="solid",shape="box"];569 -> 5534[label="",style="solid", color="burlywood", weight=9]; 5534 -> 610[label="",style="solid", color="burlywood", weight=3]; 5535[label="vuz55/Neg vuz550",fontsize=10,color="white",style="solid",shape="box"];569 -> 5535[label="",style="solid", color="burlywood", weight=9]; 5535 -> 611[label="",style="solid", color="burlywood", weight=3]; 570[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) vuz55) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5536[label="vuz55/Pos vuz550",fontsize=10,color="white",style="solid",shape="box"];570 -> 5536[label="",style="solid", color="burlywood", weight=9]; 5536 -> 612[label="",style="solid", color="burlywood", weight=3]; 5537[label="vuz55/Neg vuz550",fontsize=10,color="white",style="solid",shape="box"];570 -> 5537[label="",style="solid", color="burlywood", weight=9]; 5537 -> 613[label="",style="solid", color="burlywood", weight=3]; 571[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) vuz56) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5538[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];571 -> 5538[label="",style="solid", color="burlywood", weight=9]; 5538 -> 614[label="",style="solid", color="burlywood", weight=3]; 5539[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];571 -> 5539[label="",style="solid", color="burlywood", weight=9]; 5539 -> 615[label="",style="solid", color="burlywood", weight=3]; 572[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) vuz56) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5540[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];572 -> 5540[label="",style="solid", color="burlywood", weight=9]; 5540 -> 616[label="",style="solid", color="burlywood", weight=3]; 5541[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];572 -> 5541[label="",style="solid", color="burlywood", weight=9]; 5541 -> 617[label="",style="solid", color="burlywood", weight=3]; 573[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) vuz56) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5542[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];573 -> 5542[label="",style="solid", color="burlywood", weight=9]; 5542 -> 618[label="",style="solid", color="burlywood", weight=3]; 5543[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];573 -> 5543[label="",style="solid", color="burlywood", weight=9]; 5543 -> 619[label="",style="solid", color="burlywood", weight=3]; 574[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) vuz56) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5544[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];574 -> 5544[label="",style="solid", color="burlywood", weight=9]; 5544 -> 620[label="",style="solid", color="burlywood", weight=3]; 5545[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];574 -> 5545[label="",style="solid", color="burlywood", weight=9]; 5545 -> 621[label="",style="solid", color="burlywood", weight=3]; 575[label="Integer vuz30 * signumReal1 (Integer vuz38) (compare (Integer vuz38) (fromInt (Pos Zero)) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer vuz38) (compare (Integer vuz38) (fromInt (Pos Zero)) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];575 -> 622[label="",style="solid", color="black", weight=3]; 576[label="Integer vuz30 * Integer (Pos Zero) `quot` reduce2D (Integer vuz31 * Integer (Pos Zero)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];576 -> 623[label="",style="solid", color="black", weight=3]; 578[label="Integer vuz32 `quot` gcd (vuz11 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="black",shape="box"];578 -> 625[label="",style="solid", color="black", weight=3]; 579[label="absReal0 (Integer vuz32) True `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (absReal0 (Integer vuz32) True)",fontsize=16,color="black",shape="box"];579 -> 626[label="",style="solid", color="black", weight=3]; 2242[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat (Succ vuz1350) vuz136 == GT)",fontsize=16,color="burlywood",shape="box"];5546[label="vuz136/Succ vuz1360",fontsize=10,color="white",style="solid",shape="box"];2242 -> 5546[label="",style="solid", color="burlywood", weight=9]; 5546 -> 2300[label="",style="solid", color="burlywood", weight=3]; 5547[label="vuz136/Zero",fontsize=10,color="white",style="solid",shape="box"];2242 -> 5547[label="",style="solid", color="burlywood", weight=9]; 5547 -> 2301[label="",style="solid", color="burlywood", weight=3]; 2243[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat Zero vuz136 == GT)",fontsize=16,color="burlywood",shape="box"];5548[label="vuz136/Succ vuz1360",fontsize=10,color="white",style="solid",shape="box"];2243 -> 5548[label="",style="solid", color="burlywood", weight=9]; 5548 -> 2302[label="",style="solid", color="burlywood", weight=3]; 5549[label="vuz136/Zero",fontsize=10,color="white",style="solid",shape="box"];2243 -> 5549[label="",style="solid", color="burlywood", weight=9]; 5549 -> 2303[label="",style="solid", color="burlywood", weight=3]; 584[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];584 -> 633[label="",style="solid", color="black", weight=3]; 585[label="signumReal0 (Neg (Succ vuz2600)) otherwise",fontsize=16,color="black",shape="box"];585 -> 634[label="",style="solid", color="black", weight=3]; 2298[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat (Succ vuz1390) vuz140 == GT)",fontsize=16,color="burlywood",shape="box"];5550[label="vuz140/Succ vuz1400",fontsize=10,color="white",style="solid",shape="box"];2298 -> 5550[label="",style="solid", color="burlywood", weight=9]; 5550 -> 2333[label="",style="solid", color="burlywood", weight=3]; 5551[label="vuz140/Zero",fontsize=10,color="white",style="solid",shape="box"];2298 -> 5551[label="",style="solid", color="burlywood", weight=9]; 5551 -> 2334[label="",style="solid", color="burlywood", weight=3]; 2299[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat Zero vuz140 == GT)",fontsize=16,color="burlywood",shape="box"];5552[label="vuz140/Succ vuz1400",fontsize=10,color="white",style="solid",shape="box"];2299 -> 5552[label="",style="solid", color="burlywood", weight=9]; 5552 -> 2335[label="",style="solid", color="burlywood", weight=3]; 5553[label="vuz140/Zero",fontsize=10,color="white",style="solid",shape="box"];2299 -> 5553[label="",style="solid", color="burlywood", weight=9]; 5553 -> 2336[label="",style="solid", color="burlywood", weight=3]; 588[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt vuz49 vuz57) vuz50 vuz49)",fontsize=16,color="burlywood",shape="box"];5554[label="vuz49/Pos vuz490",fontsize=10,color="white",style="solid",shape="box"];588 -> 5554[label="",style="solid", color="burlywood", weight=9]; 5554 -> 637[label="",style="solid", color="burlywood", weight=3]; 5555[label="vuz49/Neg vuz490",fontsize=10,color="white",style="solid",shape="box"];588 -> 5555[label="",style="solid", color="burlywood", weight=9]; 5555 -> 638[label="",style="solid", color="burlywood", weight=3]; 589[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos vuz510)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5556[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];589 -> 5556[label="",style="solid", color="burlywood", weight=9]; 5556 -> 639[label="",style="solid", color="burlywood", weight=3]; 5557[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];589 -> 5557[label="",style="solid", color="burlywood", weight=9]; 5557 -> 640[label="",style="solid", color="burlywood", weight=3]; 590[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Neg vuz510)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];590 -> 641[label="",style="solid", color="black", weight=3]; 591[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos vuz510)) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5558[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];591 -> 5558[label="",style="solid", color="burlywood", weight=9]; 5558 -> 642[label="",style="solid", color="burlywood", weight=3]; 5559[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];591 -> 5559[label="",style="solid", color="burlywood", weight=9]; 5559 -> 643[label="",style="solid", color="burlywood", weight=3]; 592[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg vuz510)) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5560[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];592 -> 5560[label="",style="solid", color="burlywood", weight=9]; 5560 -> 644[label="",style="solid", color="burlywood", weight=3]; 5561[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];592 -> 5561[label="",style="solid", color="burlywood", weight=9]; 5561 -> 645[label="",style="solid", color="burlywood", weight=3]; 593[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Pos vuz510)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];593 -> 646[label="",style="solid", color="black", weight=3]; 594[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg vuz510)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5562[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];594 -> 5562[label="",style="solid", color="burlywood", weight=9]; 5562 -> 647[label="",style="solid", color="burlywood", weight=3]; 5563[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];594 -> 5563[label="",style="solid", color="burlywood", weight=9]; 5563 -> 648[label="",style="solid", color="burlywood", weight=3]; 595[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos vuz510)) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5564[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];595 -> 5564[label="",style="solid", color="burlywood", weight=9]; 5564 -> 649[label="",style="solid", color="burlywood", weight=3]; 5565[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];595 -> 5565[label="",style="solid", color="burlywood", weight=9]; 5565 -> 650[label="",style="solid", color="burlywood", weight=3]; 596[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg vuz510)) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5566[label="vuz510/Succ vuz5100",fontsize=10,color="white",style="solid",shape="box"];596 -> 5566[label="",style="solid", color="burlywood", weight=9]; 5566 -> 651[label="",style="solid", color="burlywood", weight=3]; 5567[label="vuz510/Zero",fontsize=10,color="white",style="solid",shape="box"];596 -> 5567[label="",style="solid", color="burlywood", weight=9]; 5567 -> 652[label="",style="solid", color="burlywood", weight=3]; 597[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos vuz520)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5568[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];597 -> 5568[label="",style="solid", color="burlywood", weight=9]; 5568 -> 653[label="",style="solid", color="burlywood", weight=3]; 5569[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];597 -> 5569[label="",style="solid", color="burlywood", weight=9]; 5569 -> 654[label="",style="solid", color="burlywood", weight=3]; 598[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Neg vuz520)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];598 -> 655[label="",style="solid", color="black", weight=3]; 599[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos vuz520)) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5570[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];599 -> 5570[label="",style="solid", color="burlywood", weight=9]; 5570 -> 656[label="",style="solid", color="burlywood", weight=3]; 5571[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];599 -> 5571[label="",style="solid", color="burlywood", weight=9]; 5571 -> 657[label="",style="solid", color="burlywood", weight=3]; 600[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg vuz520)) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5572[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];600 -> 5572[label="",style="solid", color="burlywood", weight=9]; 5572 -> 658[label="",style="solid", color="burlywood", weight=3]; 5573[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];600 -> 5573[label="",style="solid", color="burlywood", weight=9]; 5573 -> 659[label="",style="solid", color="burlywood", weight=3]; 601[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Pos vuz520)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];601 -> 660[label="",style="solid", color="black", weight=3]; 602[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg vuz520)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5574[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];602 -> 5574[label="",style="solid", color="burlywood", weight=9]; 5574 -> 661[label="",style="solid", color="burlywood", weight=3]; 5575[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];602 -> 5575[label="",style="solid", color="burlywood", weight=9]; 5575 -> 662[label="",style="solid", color="burlywood", weight=3]; 603[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos vuz520)) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5576[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];603 -> 5576[label="",style="solid", color="burlywood", weight=9]; 5576 -> 663[label="",style="solid", color="burlywood", weight=3]; 5577[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];603 -> 5577[label="",style="solid", color="burlywood", weight=9]; 5577 -> 664[label="",style="solid", color="burlywood", weight=3]; 604[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg vuz520)) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5578[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];604 -> 5578[label="",style="solid", color="burlywood", weight=9]; 5578 -> 665[label="",style="solid", color="burlywood", weight=3]; 5579[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];604 -> 5579[label="",style="solid", color="burlywood", weight=9]; 5579 -> 666[label="",style="solid", color="burlywood", weight=3]; 605[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt vuz53 vuz58) vuz54 vuz53)",fontsize=16,color="burlywood",shape="box"];5580[label="vuz53/Pos vuz530",fontsize=10,color="white",style="solid",shape="box"];605 -> 5580[label="",style="solid", color="burlywood", weight=9]; 5580 -> 667[label="",style="solid", color="burlywood", weight=3]; 5581[label="vuz53/Neg vuz530",fontsize=10,color="white",style="solid",shape="box"];605 -> 5581[label="",style="solid", color="burlywood", weight=9]; 5581 -> 668[label="",style="solid", color="burlywood", weight=3]; 606[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos vuz550)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5582[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];606 -> 5582[label="",style="solid", color="burlywood", weight=9]; 5582 -> 669[label="",style="solid", color="burlywood", weight=3]; 5583[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];606 -> 5583[label="",style="solid", color="burlywood", weight=9]; 5583 -> 670[label="",style="solid", color="burlywood", weight=3]; 607[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Neg vuz550)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];607 -> 671[label="",style="solid", color="black", weight=3]; 608[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos vuz550)) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5584[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];608 -> 5584[label="",style="solid", color="burlywood", weight=9]; 5584 -> 672[label="",style="solid", color="burlywood", weight=3]; 5585[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];608 -> 5585[label="",style="solid", color="burlywood", weight=9]; 5585 -> 673[label="",style="solid", color="burlywood", weight=3]; 609[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg vuz550)) (Pos Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5586[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];609 -> 5586[label="",style="solid", color="burlywood", weight=9]; 5586 -> 674[label="",style="solid", color="burlywood", weight=3]; 5587[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];609 -> 5587[label="",style="solid", color="burlywood", weight=9]; 5587 -> 675[label="",style="solid", color="burlywood", weight=3]; 610[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Pos vuz550)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];610 -> 676[label="",style="solid", color="black", weight=3]; 611[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg vuz550)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5588[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];611 -> 5588[label="",style="solid", color="burlywood", weight=9]; 5588 -> 677[label="",style="solid", color="burlywood", weight=3]; 5589[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];611 -> 5589[label="",style="solid", color="burlywood", weight=9]; 5589 -> 678[label="",style="solid", color="burlywood", weight=3]; 612[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos vuz550)) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5590[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];612 -> 5590[label="",style="solid", color="burlywood", weight=9]; 5590 -> 679[label="",style="solid", color="burlywood", weight=3]; 5591[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];612 -> 5591[label="",style="solid", color="burlywood", weight=9]; 5591 -> 680[label="",style="solid", color="burlywood", weight=3]; 613[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg vuz550)) (Pos Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5592[label="vuz550/Succ vuz5500",fontsize=10,color="white",style="solid",shape="box"];613 -> 5592[label="",style="solid", color="burlywood", weight=9]; 5592 -> 681[label="",style="solid", color="burlywood", weight=3]; 5593[label="vuz550/Zero",fontsize=10,color="white",style="solid",shape="box"];613 -> 5593[label="",style="solid", color="burlywood", weight=9]; 5593 -> 682[label="",style="solid", color="burlywood", weight=3]; 614[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos vuz560)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5594[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];614 -> 5594[label="",style="solid", color="burlywood", weight=9]; 5594 -> 683[label="",style="solid", color="burlywood", weight=3]; 5595[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];614 -> 5595[label="",style="solid", color="burlywood", weight=9]; 5595 -> 684[label="",style="solid", color="burlywood", weight=3]; 615[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Neg vuz560)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];615 -> 685[label="",style="solid", color="black", weight=3]; 616[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos vuz560)) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5596[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];616 -> 5596[label="",style="solid", color="burlywood", weight=9]; 5596 -> 686[label="",style="solid", color="burlywood", weight=3]; 5597[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];616 -> 5597[label="",style="solid", color="burlywood", weight=9]; 5597 -> 687[label="",style="solid", color="burlywood", weight=3]; 617[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg vuz560)) (Neg Zero) (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5598[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];617 -> 5598[label="",style="solid", color="burlywood", weight=9]; 5598 -> 688[label="",style="solid", color="burlywood", weight=3]; 5599[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];617 -> 5599[label="",style="solid", color="burlywood", weight=9]; 5599 -> 689[label="",style="solid", color="burlywood", weight=3]; 618[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Pos vuz560)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];618 -> 690[label="",style="solid", color="black", weight=3]; 619[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg vuz560)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="box"];5600[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];619 -> 5600[label="",style="solid", color="burlywood", weight=9]; 5600 -> 691[label="",style="solid", color="burlywood", weight=3]; 5601[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];619 -> 5601[label="",style="solid", color="burlywood", weight=9]; 5601 -> 692[label="",style="solid", color="burlywood", weight=3]; 620[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos vuz560)) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5602[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];620 -> 5602[label="",style="solid", color="burlywood", weight=9]; 5602 -> 693[label="",style="solid", color="burlywood", weight=3]; 5603[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];620 -> 5603[label="",style="solid", color="burlywood", weight=9]; 5603 -> 694[label="",style="solid", color="burlywood", weight=3]; 621[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg vuz560)) (Neg Zero) (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5604[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];621 -> 5604[label="",style="solid", color="burlywood", weight=9]; 5604 -> 695[label="",style="solid", color="burlywood", weight=3]; 5605[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];621 -> 5605[label="",style="solid", color="burlywood", weight=9]; 5605 -> 696[label="",style="solid", color="burlywood", weight=3]; 622[label="Integer vuz30 * signumReal1 (Integer vuz38) (compare (Integer vuz38) (Integer (Pos Zero)) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer vuz38) (compare (Integer vuz38) (Integer (Pos Zero)) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];622 -> 697[label="",style="solid", color="black", weight=3]; 623 -> 698[label="",style="dashed", color="red", weight=0]; 623[label="Integer (primMulInt vuz30 (Pos Zero)) `quot` reduce2D (Integer (primMulInt vuz30 (Pos Zero))) (abs (Integer vuz37))",fontsize=16,color="magenta"];623 -> 699[label="",style="dashed", color="magenta", weight=3]; 623 -> 700[label="",style="dashed", color="magenta", weight=3]; 625[label="Integer vuz32 `quot` gcd3 (vuz11 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="black",shape="box"];625 -> 701[label="",style="solid", color="black", weight=3]; 626[label="(`negate` Integer vuz32) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (`negate` Integer vuz32)",fontsize=16,color="black",shape="box"];626 -> 702[label="",style="solid", color="black", weight=3]; 2300[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat (Succ vuz1350) (Succ vuz1360) == GT)",fontsize=16,color="black",shape="box"];2300 -> 2337[label="",style="solid", color="black", weight=3]; 2301[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat (Succ vuz1350) Zero == GT)",fontsize=16,color="black",shape="box"];2301 -> 2338[label="",style="solid", color="black", weight=3]; 2302[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat Zero (Succ vuz1360) == GT)",fontsize=16,color="black",shape="box"];2302 -> 2339[label="",style="solid", color="black", weight=3]; 2303[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];2303 -> 2340[label="",style="solid", color="black", weight=3]; 633[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];634[label="signumReal0 (Neg (Succ vuz2600)) True",fontsize=16,color="black",shape="box"];634 -> 711[label="",style="solid", color="black", weight=3]; 2333[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat (Succ vuz1390) (Succ vuz1400) == GT)",fontsize=16,color="black",shape="box"];2333 -> 2371[label="",style="solid", color="black", weight=3]; 2334[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat (Succ vuz1390) Zero == GT)",fontsize=16,color="black",shape="box"];2334 -> 2372[label="",style="solid", color="black", weight=3]; 2335[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat Zero (Succ vuz1400) == GT)",fontsize=16,color="black",shape="box"];2335 -> 2373[label="",style="solid", color="black", weight=3]; 2336[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];2336 -> 2374[label="",style="solid", color="black", weight=3]; 637[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos vuz490) vuz57) vuz50 (Pos vuz490))",fontsize=16,color="burlywood",shape="box"];5606[label="vuz490/Succ vuz4900",fontsize=10,color="white",style="solid",shape="box"];637 -> 5606[label="",style="solid", color="burlywood", weight=9]; 5606 -> 716[label="",style="solid", color="burlywood", weight=3]; 5607[label="vuz490/Zero",fontsize=10,color="white",style="solid",shape="box"];637 -> 5607[label="",style="solid", color="burlywood", weight=9]; 5607 -> 717[label="",style="solid", color="burlywood", weight=3]; 638[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg vuz490) vuz57) vuz50 (Neg vuz490))",fontsize=16,color="burlywood",shape="box"];5608[label="vuz490/Succ vuz4900",fontsize=10,color="white",style="solid",shape="box"];638 -> 5608[label="",style="solid", color="burlywood", weight=9]; 5608 -> 718[label="",style="solid", color="burlywood", weight=3]; 5609[label="vuz490/Zero",fontsize=10,color="white",style="solid",shape="box"];638 -> 5609[label="",style="solid", color="burlywood", weight=9]; 5609 -> 719[label="",style="solid", color="burlywood", weight=3]; 639[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos (Succ vuz5100))) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];639 -> 720[label="",style="solid", color="black", weight=3]; 640[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos Zero)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];640 -> 721[label="",style="solid", color="black", weight=3]; 641 -> 808[label="",style="dashed", color="red", weight=0]; 641[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];641 -> 809[label="",style="dashed", color="magenta", weight=3]; 642[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos (Succ vuz5100))) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];642 -> 723[label="",style="solid", color="black", weight=3]; 643[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos Zero)) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];643 -> 724[label="",style="solid", color="black", weight=3]; 644[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg (Succ vuz5100))) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];644 -> 725[label="",style="solid", color="black", weight=3]; 645[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg Zero)) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];645 -> 726[label="",style="solid", color="black", weight=3]; 646 -> 817[label="",style="dashed", color="red", weight=0]; 646[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];646 -> 818[label="",style="dashed", color="magenta", weight=3]; 647[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg (Succ vuz5100))) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];647 -> 728[label="",style="solid", color="black", weight=3]; 648[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg Zero)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];648 -> 729[label="",style="solid", color="black", weight=3]; 649[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos (Succ vuz5100))) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];649 -> 730[label="",style="solid", color="black", weight=3]; 650[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos Zero)) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];650 -> 731[label="",style="solid", color="black", weight=3]; 651[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg (Succ vuz5100))) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];651 -> 732[label="",style="solid", color="black", weight=3]; 652[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg Zero)) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];652 -> 733[label="",style="solid", color="black", weight=3]; 653[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos (Succ vuz5200))) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];653 -> 734[label="",style="solid", color="black", weight=3]; 654[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos Zero)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];654 -> 735[label="",style="solid", color="black", weight=3]; 655 -> 825[label="",style="dashed", color="red", weight=0]; 655[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];655 -> 826[label="",style="dashed", color="magenta", weight=3]; 656[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos (Succ vuz5200))) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];656 -> 737[label="",style="solid", color="black", weight=3]; 657[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Pos Zero)) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];657 -> 738[label="",style="solid", color="black", weight=3]; 658[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg (Succ vuz5200))) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];658 -> 739[label="",style="solid", color="black", weight=3]; 659[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Pos Zero) (Neg Zero)) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];659 -> 740[label="",style="solid", color="black", weight=3]; 660 -> 834[label="",style="dashed", color="red", weight=0]; 660[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];660 -> 835[label="",style="dashed", color="magenta", weight=3]; 661[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg (Succ vuz5200))) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];661 -> 742[label="",style="solid", color="black", weight=3]; 662[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg Zero)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];662 -> 743[label="",style="solid", color="black", weight=3]; 663[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos (Succ vuz5200))) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];663 -> 744[label="",style="solid", color="black", weight=3]; 664[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Pos Zero)) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];664 -> 745[label="",style="solid", color="black", weight=3]; 665[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg (Succ vuz5200))) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];665 -> 746[label="",style="solid", color="black", weight=3]; 666[label="primQuotInt (Pos vuz180) (gcd1 (primEqInt (Neg Zero) (Neg Zero)) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];666 -> 747[label="",style="solid", color="black", weight=3]; 667[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos vuz530) vuz58) vuz54 (Pos vuz530))",fontsize=16,color="burlywood",shape="box"];5610[label="vuz530/Succ vuz5300",fontsize=10,color="white",style="solid",shape="box"];667 -> 5610[label="",style="solid", color="burlywood", weight=9]; 5610 -> 748[label="",style="solid", color="burlywood", weight=3]; 5611[label="vuz530/Zero",fontsize=10,color="white",style="solid",shape="box"];667 -> 5611[label="",style="solid", color="burlywood", weight=9]; 5611 -> 749[label="",style="solid", color="burlywood", weight=3]; 668[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg vuz530) vuz58) vuz54 (Neg vuz530))",fontsize=16,color="burlywood",shape="box"];5612[label="vuz530/Succ vuz5300",fontsize=10,color="white",style="solid",shape="box"];668 -> 5612[label="",style="solid", color="burlywood", weight=9]; 5612 -> 750[label="",style="solid", color="burlywood", weight=3]; 5613[label="vuz530/Zero",fontsize=10,color="white",style="solid",shape="box"];668 -> 5613[label="",style="solid", color="burlywood", weight=9]; 5613 -> 751[label="",style="solid", color="burlywood", weight=3]; 669[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos (Succ vuz5500))) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];669 -> 752[label="",style="solid", color="black", weight=3]; 670[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos Zero)) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];670 -> 753[label="",style="solid", color="black", weight=3]; 671 -> 850[label="",style="dashed", color="red", weight=0]; 671[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];671 -> 851[label="",style="dashed", color="magenta", weight=3]; 672[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos (Succ vuz5500))) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];672 -> 755[label="",style="solid", color="black", weight=3]; 673[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos Zero)) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];673 -> 756[label="",style="solid", color="black", weight=3]; 674[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg (Succ vuz5500))) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];674 -> 757[label="",style="solid", color="black", weight=3]; 675[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg Zero)) (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];675 -> 758[label="",style="solid", color="black", weight=3]; 676 -> 859[label="",style="dashed", color="red", weight=0]; 676[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];676 -> 860[label="",style="dashed", color="magenta", weight=3]; 677[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg (Succ vuz5500))) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];677 -> 760[label="",style="solid", color="black", weight=3]; 678[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg Zero)) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];678 -> 761[label="",style="solid", color="black", weight=3]; 679[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos (Succ vuz5500))) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];679 -> 762[label="",style="solid", color="black", weight=3]; 680[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos Zero)) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];680 -> 763[label="",style="solid", color="black", weight=3]; 681[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg (Succ vuz5500))) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];681 -> 764[label="",style="solid", color="black", weight=3]; 682[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg Zero)) (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];682 -> 765[label="",style="solid", color="black", weight=3]; 683[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos (Succ vuz5600))) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];683 -> 766[label="",style="solid", color="black", weight=3]; 684[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos (Succ vuz2700)) (Pos Zero)) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];684 -> 767[label="",style="solid", color="black", weight=3]; 685 -> 867[label="",style="dashed", color="red", weight=0]; 685[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];685 -> 868[label="",style="dashed", color="magenta", weight=3]; 686[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos (Succ vuz5600))) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];686 -> 769[label="",style="solid", color="black", weight=3]; 687[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Pos Zero)) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];687 -> 770[label="",style="solid", color="black", weight=3]; 688[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg (Succ vuz5600))) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];688 -> 771[label="",style="solid", color="black", weight=3]; 689[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Pos Zero) (Neg Zero)) (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];689 -> 772[label="",style="solid", color="black", weight=3]; 690 -> 876[label="",style="dashed", color="red", weight=0]; 690[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];690 -> 877[label="",style="dashed", color="magenta", weight=3]; 691[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg (Succ vuz5600))) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];691 -> 774[label="",style="solid", color="black", weight=3]; 692[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg (Succ vuz2700)) (Neg Zero)) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];692 -> 775[label="",style="solid", color="black", weight=3]; 693[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos (Succ vuz5600))) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];693 -> 776[label="",style="solid", color="black", weight=3]; 694[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Pos Zero)) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];694 -> 777[label="",style="solid", color="black", weight=3]; 695[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg (Succ vuz5600))) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];695 -> 778[label="",style="solid", color="black", weight=3]; 696[label="primQuotInt (Neg vuz180) (gcd1 (primEqInt (Neg Zero) (Neg Zero)) (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];696 -> 779[label="",style="solid", color="black", weight=3]; 697[label="Integer vuz30 * signumReal1 (Integer vuz38) (primCmpInt vuz38 (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer vuz38) (primCmpInt vuz38 (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5614[label="vuz38/Pos vuz380",fontsize=10,color="white",style="solid",shape="box"];697 -> 5614[label="",style="solid", color="burlywood", weight=9]; 5614 -> 780[label="",style="solid", color="burlywood", weight=3]; 5615[label="vuz38/Neg vuz380",fontsize=10,color="white",style="solid",shape="box"];697 -> 5615[label="",style="solid", color="burlywood", weight=9]; 5615 -> 781[label="",style="solid", color="burlywood", weight=3]; 699 -> 25[label="",style="dashed", color="red", weight=0]; 699[label="primMulInt vuz30 (Pos Zero)",fontsize=16,color="magenta"];699 -> 782[label="",style="dashed", color="magenta", weight=3]; 699 -> 783[label="",style="dashed", color="magenta", weight=3]; 700 -> 25[label="",style="dashed", color="red", weight=0]; 700[label="primMulInt vuz30 (Pos Zero)",fontsize=16,color="magenta"];700 -> 784[label="",style="dashed", color="magenta", weight=3]; 700 -> 785[label="",style="dashed", color="magenta", weight=3]; 698[label="Integer vuz59 `quot` reduce2D (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];698 -> 786[label="",style="solid", color="black", weight=3]; 701[label="Integer vuz32 `quot` gcd2 (vuz11 * vuz12 * signum (Integer vuz34) == fromInt (Pos Zero)) (vuz11 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="burlywood",shape="box"];5616[label="vuz11/Integer vuz110",fontsize=10,color="white",style="solid",shape="box"];701 -> 5616[label="",style="solid", color="burlywood", weight=9]; 5616 -> 787[label="",style="solid", color="burlywood", weight=3]; 702 -> 543[label="",style="dashed", color="red", weight=0]; 702[label="Integer (primNegInt vuz32) `quot` reduce2D (vuz11 * vuz12 * signum (Integer vuz34)) (Integer (primNegInt vuz32))",fontsize=16,color="magenta"];702 -> 788[label="",style="dashed", color="magenta", weight=3]; 2337 -> 2211[label="",style="dashed", color="red", weight=0]; 2337[label="signumReal1 (Pos (Succ vuz134)) (primCmpNat vuz1350 vuz1360 == GT)",fontsize=16,color="magenta"];2337 -> 2375[label="",style="dashed", color="magenta", weight=3]; 2337 -> 2376[label="",style="dashed", color="magenta", weight=3]; 2338[label="signumReal1 (Pos (Succ vuz134)) (GT == GT)",fontsize=16,color="black",shape="box"];2338 -> 2377[label="",style="solid", color="black", weight=3]; 2339[label="signumReal1 (Pos (Succ vuz134)) (LT == GT)",fontsize=16,color="black",shape="box"];2339 -> 2378[label="",style="solid", color="black", weight=3]; 2340[label="signumReal1 (Pos (Succ vuz134)) (EQ == GT)",fontsize=16,color="black",shape="box"];2340 -> 2379[label="",style="solid", color="black", weight=3]; 711[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];711 -> 795[label="",style="solid", color="black", weight=3]; 2371 -> 2267[label="",style="dashed", color="red", weight=0]; 2371[label="signumReal1 (Neg (Succ vuz138)) (primCmpNat vuz1390 vuz1400 == GT)",fontsize=16,color="magenta"];2371 -> 2410[label="",style="dashed", color="magenta", weight=3]; 2371 -> 2411[label="",style="dashed", color="magenta", weight=3]; 2372[label="signumReal1 (Neg (Succ vuz138)) (GT == GT)",fontsize=16,color="black",shape="box"];2372 -> 2412[label="",style="solid", color="black", weight=3]; 2373[label="signumReal1 (Neg (Succ vuz138)) (LT == GT)",fontsize=16,color="black",shape="box"];2373 -> 2413[label="",style="solid", color="black", weight=3]; 2374[label="signumReal1 (Neg (Succ vuz138)) (EQ == GT)",fontsize=16,color="black",shape="box"];2374 -> 2414[label="",style="solid", color="black", weight=3]; 716[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) vuz57) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="burlywood",shape="box"];5617[label="vuz57/Pos vuz570",fontsize=10,color="white",style="solid",shape="box"];716 -> 5617[label="",style="solid", color="burlywood", weight=9]; 5617 -> 800[label="",style="solid", color="burlywood", weight=3]; 5618[label="vuz57/Neg vuz570",fontsize=10,color="white",style="solid",shape="box"];716 -> 5618[label="",style="solid", color="burlywood", weight=9]; 5618 -> 801[label="",style="solid", color="burlywood", weight=3]; 717[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) vuz57) vuz50 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5619[label="vuz57/Pos vuz570",fontsize=10,color="white",style="solid",shape="box"];717 -> 5619[label="",style="solid", color="burlywood", weight=9]; 5619 -> 802[label="",style="solid", color="burlywood", weight=3]; 5620[label="vuz57/Neg vuz570",fontsize=10,color="white",style="solid",shape="box"];717 -> 5620[label="",style="solid", color="burlywood", weight=9]; 5620 -> 803[label="",style="solid", color="burlywood", weight=3]; 718[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) vuz57) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="burlywood",shape="box"];5621[label="vuz57/Pos vuz570",fontsize=10,color="white",style="solid",shape="box"];718 -> 5621[label="",style="solid", color="burlywood", weight=9]; 5621 -> 804[label="",style="solid", color="burlywood", weight=3]; 5622[label="vuz57/Neg vuz570",fontsize=10,color="white",style="solid",shape="box"];718 -> 5622[label="",style="solid", color="burlywood", weight=9]; 5622 -> 805[label="",style="solid", color="burlywood", weight=3]; 719[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) vuz57) vuz50 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5623[label="vuz57/Pos vuz570",fontsize=10,color="white",style="solid",shape="box"];719 -> 5623[label="",style="solid", color="burlywood", weight=9]; 5623 -> 806[label="",style="solid", color="burlywood", weight=3]; 5624[label="vuz57/Neg vuz570",fontsize=10,color="white",style="solid",shape="box"];719 -> 5624[label="",style="solid", color="burlywood", weight=9]; 5624 -> 807[label="",style="solid", color="burlywood", weight=3]; 720 -> 808[label="",style="dashed", color="red", weight=0]; 720[label="primQuotInt (Pos vuz180) (gcd1 (primEqNat vuz2700 vuz5100) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];720 -> 810[label="",style="dashed", color="magenta", weight=3]; 721 -> 808[label="",style="dashed", color="red", weight=0]; 721[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];721 -> 811[label="",style="dashed", color="magenta", weight=3]; 809[label="False",fontsize=16,color="green",shape="box"];808[label="primQuotInt (Pos vuz180) (gcd1 vuz61 (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5625[label="vuz61/False",fontsize=10,color="white",style="solid",shape="box"];808 -> 5625[label="",style="solid", color="burlywood", weight=9]; 5625 -> 812[label="",style="solid", color="burlywood", weight=3]; 5626[label="vuz61/True",fontsize=10,color="white",style="solid",shape="box"];808 -> 5626[label="",style="solid", color="burlywood", weight=9]; 5626 -> 813[label="",style="solid", color="burlywood", weight=3]; 723[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];723 -> 814[label="",style="solid", color="black", weight=3]; 724[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];724 -> 815[label="",style="solid", color="black", weight=3]; 725 -> 723[label="",style="dashed", color="red", weight=0]; 725[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];726 -> 724[label="",style="dashed", color="red", weight=0]; 726[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];818[label="False",fontsize=16,color="green",shape="box"];817[label="primQuotInt (Pos vuz180) (gcd1 vuz62 (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5627[label="vuz62/False",fontsize=10,color="white",style="solid",shape="box"];817 -> 5627[label="",style="solid", color="burlywood", weight=9]; 5627 -> 821[label="",style="solid", color="burlywood", weight=3]; 5628[label="vuz62/True",fontsize=10,color="white",style="solid",shape="box"];817 -> 5628[label="",style="solid", color="burlywood", weight=9]; 5628 -> 822[label="",style="solid", color="burlywood", weight=3]; 728 -> 817[label="",style="dashed", color="red", weight=0]; 728[label="primQuotInt (Pos vuz180) (gcd1 (primEqNat vuz2700 vuz5100) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];728 -> 819[label="",style="dashed", color="magenta", weight=3]; 729 -> 817[label="",style="dashed", color="red", weight=0]; 729[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];729 -> 820[label="",style="dashed", color="magenta", weight=3]; 730[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];730 -> 823[label="",style="solid", color="black", weight=3]; 731[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];731 -> 824[label="",style="solid", color="black", weight=3]; 732 -> 730[label="",style="dashed", color="red", weight=0]; 732[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];733 -> 731[label="",style="dashed", color="red", weight=0]; 733[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];734 -> 825[label="",style="dashed", color="red", weight=0]; 734[label="primQuotInt (Pos vuz180) (gcd1 (primEqNat vuz2700 vuz5200) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];734 -> 827[label="",style="dashed", color="magenta", weight=3]; 735 -> 825[label="",style="dashed", color="red", weight=0]; 735[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];735 -> 828[label="",style="dashed", color="magenta", weight=3]; 826[label="False",fontsize=16,color="green",shape="box"];825[label="primQuotInt (Pos vuz180) (gcd1 vuz63 (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5629[label="vuz63/False",fontsize=10,color="white",style="solid",shape="box"];825 -> 5629[label="",style="solid", color="burlywood", weight=9]; 5629 -> 829[label="",style="solid", color="burlywood", weight=3]; 5630[label="vuz63/True",fontsize=10,color="white",style="solid",shape="box"];825 -> 5630[label="",style="solid", color="burlywood", weight=9]; 5630 -> 830[label="",style="solid", color="burlywood", weight=3]; 737[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];737 -> 831[label="",style="solid", color="black", weight=3]; 738[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];738 -> 832[label="",style="solid", color="black", weight=3]; 739 -> 737[label="",style="dashed", color="red", weight=0]; 739[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];740 -> 738[label="",style="dashed", color="red", weight=0]; 740[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];835[label="False",fontsize=16,color="green",shape="box"];834[label="primQuotInt (Pos vuz180) (gcd1 vuz64 (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5631[label="vuz64/False",fontsize=10,color="white",style="solid",shape="box"];834 -> 5631[label="",style="solid", color="burlywood", weight=9]; 5631 -> 838[label="",style="solid", color="burlywood", weight=3]; 5632[label="vuz64/True",fontsize=10,color="white",style="solid",shape="box"];834 -> 5632[label="",style="solid", color="burlywood", weight=9]; 5632 -> 839[label="",style="solid", color="burlywood", weight=3]; 742 -> 834[label="",style="dashed", color="red", weight=0]; 742[label="primQuotInt (Pos vuz180) (gcd1 (primEqNat vuz2700 vuz5200) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];742 -> 836[label="",style="dashed", color="magenta", weight=3]; 743 -> 834[label="",style="dashed", color="red", weight=0]; 743[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];743 -> 837[label="",style="dashed", color="magenta", weight=3]; 744[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];744 -> 840[label="",style="solid", color="black", weight=3]; 745[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];745 -> 841[label="",style="solid", color="black", weight=3]; 746 -> 744[label="",style="dashed", color="red", weight=0]; 746[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];747 -> 745[label="",style="dashed", color="red", weight=0]; 747[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];748[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) vuz58) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="burlywood",shape="box"];5633[label="vuz58/Pos vuz580",fontsize=10,color="white",style="solid",shape="box"];748 -> 5633[label="",style="solid", color="burlywood", weight=9]; 5633 -> 842[label="",style="solid", color="burlywood", weight=3]; 5634[label="vuz58/Neg vuz580",fontsize=10,color="white",style="solid",shape="box"];748 -> 5634[label="",style="solid", color="burlywood", weight=9]; 5634 -> 843[label="",style="solid", color="burlywood", weight=3]; 749[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) vuz58) vuz54 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5635[label="vuz58/Pos vuz580",fontsize=10,color="white",style="solid",shape="box"];749 -> 5635[label="",style="solid", color="burlywood", weight=9]; 5635 -> 844[label="",style="solid", color="burlywood", weight=3]; 5636[label="vuz58/Neg vuz580",fontsize=10,color="white",style="solid",shape="box"];749 -> 5636[label="",style="solid", color="burlywood", weight=9]; 5636 -> 845[label="",style="solid", color="burlywood", weight=3]; 750[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) vuz58) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="burlywood",shape="box"];5637[label="vuz58/Pos vuz580",fontsize=10,color="white",style="solid",shape="box"];750 -> 5637[label="",style="solid", color="burlywood", weight=9]; 5637 -> 846[label="",style="solid", color="burlywood", weight=3]; 5638[label="vuz58/Neg vuz580",fontsize=10,color="white",style="solid",shape="box"];750 -> 5638[label="",style="solid", color="burlywood", weight=9]; 5638 -> 847[label="",style="solid", color="burlywood", weight=3]; 751[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) vuz58) vuz54 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5639[label="vuz58/Pos vuz580",fontsize=10,color="white",style="solid",shape="box"];751 -> 5639[label="",style="solid", color="burlywood", weight=9]; 5639 -> 848[label="",style="solid", color="burlywood", weight=3]; 5640[label="vuz58/Neg vuz580",fontsize=10,color="white",style="solid",shape="box"];751 -> 5640[label="",style="solid", color="burlywood", weight=9]; 5640 -> 849[label="",style="solid", color="burlywood", weight=3]; 752 -> 850[label="",style="dashed", color="red", weight=0]; 752[label="primQuotInt (Neg vuz180) (gcd1 (primEqNat vuz2700 vuz5500) (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];752 -> 852[label="",style="dashed", color="magenta", weight=3]; 753 -> 850[label="",style="dashed", color="red", weight=0]; 753[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];753 -> 853[label="",style="dashed", color="magenta", weight=3]; 851[label="False",fontsize=16,color="green",shape="box"];850[label="primQuotInt (Neg vuz180) (gcd1 vuz65 (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5641[label="vuz65/False",fontsize=10,color="white",style="solid",shape="box"];850 -> 5641[label="",style="solid", color="burlywood", weight=9]; 5641 -> 854[label="",style="solid", color="burlywood", weight=3]; 5642[label="vuz65/True",fontsize=10,color="white",style="solid",shape="box"];850 -> 5642[label="",style="solid", color="burlywood", weight=9]; 5642 -> 855[label="",style="solid", color="burlywood", weight=3]; 755[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];755 -> 856[label="",style="solid", color="black", weight=3]; 756[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];756 -> 857[label="",style="solid", color="black", weight=3]; 757 -> 755[label="",style="dashed", color="red", weight=0]; 757[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];758 -> 756[label="",style="dashed", color="red", weight=0]; 758[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];860[label="False",fontsize=16,color="green",shape="box"];859[label="primQuotInt (Neg vuz180) (gcd1 vuz66 (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5643[label="vuz66/False",fontsize=10,color="white",style="solid",shape="box"];859 -> 5643[label="",style="solid", color="burlywood", weight=9]; 5643 -> 863[label="",style="solid", color="burlywood", weight=3]; 5644[label="vuz66/True",fontsize=10,color="white",style="solid",shape="box"];859 -> 5644[label="",style="solid", color="burlywood", weight=9]; 5644 -> 864[label="",style="solid", color="burlywood", weight=3]; 760 -> 859[label="",style="dashed", color="red", weight=0]; 760[label="primQuotInt (Neg vuz180) (gcd1 (primEqNat vuz2700 vuz5500) (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];760 -> 861[label="",style="dashed", color="magenta", weight=3]; 761 -> 859[label="",style="dashed", color="red", weight=0]; 761[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];761 -> 862[label="",style="dashed", color="magenta", weight=3]; 762[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];762 -> 865[label="",style="solid", color="black", weight=3]; 763[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];763 -> 866[label="",style="solid", color="black", weight=3]; 764 -> 762[label="",style="dashed", color="red", weight=0]; 764[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];765 -> 763[label="",style="dashed", color="red", weight=0]; 765[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];766 -> 867[label="",style="dashed", color="red", weight=0]; 766[label="primQuotInt (Neg vuz180) (gcd1 (primEqNat vuz2700 vuz5600) (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];766 -> 869[label="",style="dashed", color="magenta", weight=3]; 767 -> 867[label="",style="dashed", color="red", weight=0]; 767[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];767 -> 870[label="",style="dashed", color="magenta", weight=3]; 868[label="False",fontsize=16,color="green",shape="box"];867[label="primQuotInt (Neg vuz180) (gcd1 vuz67 (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5645[label="vuz67/False",fontsize=10,color="white",style="solid",shape="box"];867 -> 5645[label="",style="solid", color="burlywood", weight=9]; 5645 -> 871[label="",style="solid", color="burlywood", weight=3]; 5646[label="vuz67/True",fontsize=10,color="white",style="solid",shape="box"];867 -> 5646[label="",style="solid", color="burlywood", weight=9]; 5646 -> 872[label="",style="solid", color="burlywood", weight=3]; 769[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];769 -> 873[label="",style="solid", color="black", weight=3]; 770[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="triangle"];770 -> 874[label="",style="solid", color="black", weight=3]; 771 -> 769[label="",style="dashed", color="red", weight=0]; 771[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];772 -> 770[label="",style="dashed", color="red", weight=0]; 772[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];877[label="False",fontsize=16,color="green",shape="box"];876[label="primQuotInt (Neg vuz180) (gcd1 vuz68 (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="burlywood",shape="triangle"];5647[label="vuz68/False",fontsize=10,color="white",style="solid",shape="box"];876 -> 5647[label="",style="solid", color="burlywood", weight=9]; 5647 -> 880[label="",style="solid", color="burlywood", weight=3]; 5648[label="vuz68/True",fontsize=10,color="white",style="solid",shape="box"];876 -> 5648[label="",style="solid", color="burlywood", weight=9]; 5648 -> 881[label="",style="solid", color="burlywood", weight=3]; 774 -> 876[label="",style="dashed", color="red", weight=0]; 774[label="primQuotInt (Neg vuz180) (gcd1 (primEqNat vuz2700 vuz5600) (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];774 -> 878[label="",style="dashed", color="magenta", weight=3]; 775 -> 876[label="",style="dashed", color="red", weight=0]; 775[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];775 -> 879[label="",style="dashed", color="magenta", weight=3]; 776[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];776 -> 882[label="",style="solid", color="black", weight=3]; 777[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="triangle"];777 -> 883[label="",style="solid", color="black", weight=3]; 778 -> 776[label="",style="dashed", color="red", weight=0]; 778[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];779 -> 777[label="",style="dashed", color="red", weight=0]; 779[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];780[label="Integer vuz30 * signumReal1 (Integer (Pos vuz380)) (primCmpInt (Pos vuz380) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos vuz380)) (primCmpInt (Pos vuz380) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5649[label="vuz380/Succ vuz3800",fontsize=10,color="white",style="solid",shape="box"];780 -> 5649[label="",style="solid", color="burlywood", weight=9]; 5649 -> 884[label="",style="solid", color="burlywood", weight=3]; 5650[label="vuz380/Zero",fontsize=10,color="white",style="solid",shape="box"];780 -> 5650[label="",style="solid", color="burlywood", weight=9]; 5650 -> 885[label="",style="solid", color="burlywood", weight=3]; 781[label="Integer vuz30 * signumReal1 (Integer (Neg vuz380)) (primCmpInt (Neg vuz380) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg vuz380)) (primCmpInt (Neg vuz380) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="box"];5651[label="vuz380/Succ vuz3800",fontsize=10,color="white",style="solid",shape="box"];781 -> 5651[label="",style="solid", color="burlywood", weight=9]; 5651 -> 886[label="",style="solid", color="burlywood", weight=3]; 5652[label="vuz380/Zero",fontsize=10,color="white",style="solid",shape="box"];781 -> 5652[label="",style="solid", color="burlywood", weight=9]; 5652 -> 887[label="",style="solid", color="burlywood", weight=3]; 782[label="Pos Zero",fontsize=16,color="green",shape="box"];783[label="vuz30",fontsize=16,color="green",shape="box"];784[label="Pos Zero",fontsize=16,color="green",shape="box"];785[label="vuz30",fontsize=16,color="green",shape="box"];786[label="Integer vuz59 `quot` gcd (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];786 -> 888[label="",style="solid", color="black", weight=3]; 787[label="Integer vuz32 `quot` gcd2 (Integer vuz110 * vuz12 * signum (Integer vuz34) == fromInt (Pos Zero)) (Integer vuz110 * vuz12 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="burlywood",shape="box"];5653[label="vuz12/Integer vuz120",fontsize=10,color="white",style="solid",shape="box"];787 -> 5653[label="",style="solid", color="burlywood", weight=9]; 5653 -> 889[label="",style="solid", color="burlywood", weight=3]; 788 -> 471[label="",style="dashed", color="red", weight=0]; 788[label="primNegInt vuz32",fontsize=16,color="magenta"];788 -> 890[label="",style="dashed", color="magenta", weight=3]; 2375[label="vuz1350",fontsize=16,color="green",shape="box"];2376[label="vuz1360",fontsize=16,color="green",shape="box"];2377[label="signumReal1 (Pos (Succ vuz134)) True",fontsize=16,color="black",shape="box"];2377 -> 2415[label="",style="solid", color="black", weight=3]; 2378[label="signumReal1 (Pos (Succ vuz134)) False",fontsize=16,color="black",shape="triangle"];2378 -> 2416[label="",style="solid", color="black", weight=3]; 2379 -> 2378[label="",style="dashed", color="red", weight=0]; 2379[label="signumReal1 (Pos (Succ vuz134)) False",fontsize=16,color="magenta"];795[label="Neg (Succ Zero)",fontsize=16,color="green",shape="box"];2410[label="vuz1390",fontsize=16,color="green",shape="box"];2411[label="vuz1400",fontsize=16,color="green",shape="box"];2412[label="signumReal1 (Neg (Succ vuz138)) True",fontsize=16,color="black",shape="box"];2412 -> 2449[label="",style="solid", color="black", weight=3]; 2413[label="signumReal1 (Neg (Succ vuz138)) False",fontsize=16,color="black",shape="triangle"];2413 -> 2450[label="",style="solid", color="black", weight=3]; 2414 -> 2413[label="",style="dashed", color="red", weight=0]; 2414[label="signumReal1 (Neg (Succ vuz138)) False",fontsize=16,color="magenta"];800[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) (Pos vuz570)) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="burlywood",shape="box"];5654[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];800 -> 5654[label="",style="solid", color="burlywood", weight=9]; 5654 -> 901[label="",style="solid", color="burlywood", weight=3]; 5655[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];800 -> 5655[label="",style="solid", color="burlywood", weight=9]; 5655 -> 902[label="",style="solid", color="burlywood", weight=3]; 801[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) (Neg vuz570)) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];801 -> 903[label="",style="solid", color="black", weight=3]; 802[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos vuz570)) vuz50 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5656[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];802 -> 5656[label="",style="solid", color="burlywood", weight=9]; 5656 -> 904[label="",style="solid", color="burlywood", weight=3]; 5657[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];802 -> 5657[label="",style="solid", color="burlywood", weight=9]; 5657 -> 905[label="",style="solid", color="burlywood", weight=3]; 803[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg vuz570)) vuz50 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5658[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];803 -> 5658[label="",style="solid", color="burlywood", weight=9]; 5658 -> 906[label="",style="solid", color="burlywood", weight=3]; 5659[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];803 -> 5659[label="",style="solid", color="burlywood", weight=9]; 5659 -> 907[label="",style="solid", color="burlywood", weight=3]; 804[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) (Pos vuz570)) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];804 -> 908[label="",style="solid", color="black", weight=3]; 805[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) (Neg vuz570)) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="burlywood",shape="box"];5660[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];805 -> 5660[label="",style="solid", color="burlywood", weight=9]; 5660 -> 909[label="",style="solid", color="burlywood", weight=3]; 5661[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];805 -> 5661[label="",style="solid", color="burlywood", weight=9]; 5661 -> 910[label="",style="solid", color="burlywood", weight=3]; 806[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos vuz570)) vuz50 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5662[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];806 -> 5662[label="",style="solid", color="burlywood", weight=9]; 5662 -> 911[label="",style="solid", color="burlywood", weight=3]; 5663[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];806 -> 5663[label="",style="solid", color="burlywood", weight=9]; 5663 -> 912[label="",style="solid", color="burlywood", weight=3]; 807[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg vuz570)) vuz50 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5664[label="vuz570/Succ vuz5700",fontsize=10,color="white",style="solid",shape="box"];807 -> 5664[label="",style="solid", color="burlywood", weight=9]; 5664 -> 913[label="",style="solid", color="burlywood", weight=3]; 5665[label="vuz570/Zero",fontsize=10,color="white",style="solid",shape="box"];807 -> 5665[label="",style="solid", color="burlywood", weight=9]; 5665 -> 914[label="",style="solid", color="burlywood", weight=3]; 810 -> 547[label="",style="dashed", color="red", weight=0]; 810[label="primEqNat vuz2700 vuz5100",fontsize=16,color="magenta"];810 -> 915[label="",style="dashed", color="magenta", weight=3]; 810 -> 916[label="",style="dashed", color="magenta", weight=3]; 811[label="False",fontsize=16,color="green",shape="box"];812[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];812 -> 917[label="",style="solid", color="black", weight=3]; 813[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];813 -> 918[label="",style="solid", color="black", weight=3]; 814 -> 407[label="",style="dashed", color="red", weight=0]; 814[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];814 -> 919[label="",style="dashed", color="magenta", weight=3]; 815[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="black",shape="triangle"];815 -> 920[label="",style="solid", color="black", weight=3]; 821[label="primQuotInt (Pos vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];821 -> 921[label="",style="solid", color="black", weight=3]; 822[label="primQuotInt (Pos vuz180) (gcd1 True (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];822 -> 922[label="",style="solid", color="black", weight=3]; 819 -> 547[label="",style="dashed", color="red", weight=0]; 819[label="primEqNat vuz2700 vuz5100",fontsize=16,color="magenta"];819 -> 923[label="",style="dashed", color="magenta", weight=3]; 819 -> 924[label="",style="dashed", color="magenta", weight=3]; 820[label="False",fontsize=16,color="green",shape="box"];823 -> 407[label="",style="dashed", color="red", weight=0]; 823[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];823 -> 925[label="",style="dashed", color="magenta", weight=3]; 824 -> 815[label="",style="dashed", color="red", weight=0]; 824[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];827 -> 547[label="",style="dashed", color="red", weight=0]; 827[label="primEqNat vuz2700 vuz5200",fontsize=16,color="magenta"];827 -> 926[label="",style="dashed", color="magenta", weight=3]; 827 -> 927[label="",style="dashed", color="magenta", weight=3]; 828[label="False",fontsize=16,color="green",shape="box"];829[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];829 -> 928[label="",style="solid", color="black", weight=3]; 830[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];830 -> 929[label="",style="solid", color="black", weight=3]; 831 -> 410[label="",style="dashed", color="red", weight=0]; 831[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];831 -> 930[label="",style="dashed", color="magenta", weight=3]; 832 -> 815[label="",style="dashed", color="red", weight=0]; 832[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];838[label="primQuotInt (Pos vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];838 -> 931[label="",style="solid", color="black", weight=3]; 839[label="primQuotInt (Pos vuz180) (gcd1 True (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];839 -> 932[label="",style="solid", color="black", weight=3]; 836 -> 547[label="",style="dashed", color="red", weight=0]; 836[label="primEqNat vuz2700 vuz5200",fontsize=16,color="magenta"];836 -> 933[label="",style="dashed", color="magenta", weight=3]; 836 -> 934[label="",style="dashed", color="magenta", weight=3]; 837[label="False",fontsize=16,color="green",shape="box"];840 -> 410[label="",style="dashed", color="red", weight=0]; 840[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];840 -> 935[label="",style="dashed", color="magenta", weight=3]; 841 -> 815[label="",style="dashed", color="red", weight=0]; 841[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];842[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) (Pos vuz580)) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="burlywood",shape="box"];5666[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];842 -> 5666[label="",style="solid", color="burlywood", weight=9]; 5666 -> 936[label="",style="solid", color="burlywood", weight=3]; 5667[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];842 -> 5667[label="",style="solid", color="burlywood", weight=9]; 5667 -> 937[label="",style="solid", color="burlywood", weight=3]; 843[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) (Neg vuz580)) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];843 -> 938[label="",style="solid", color="black", weight=3]; 844[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos vuz580)) vuz54 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5668[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];844 -> 5668[label="",style="solid", color="burlywood", weight=9]; 5668 -> 939[label="",style="solid", color="burlywood", weight=3]; 5669[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];844 -> 5669[label="",style="solid", color="burlywood", weight=9]; 5669 -> 940[label="",style="solid", color="burlywood", weight=3]; 845[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg vuz580)) vuz54 (Pos Zero))",fontsize=16,color="burlywood",shape="box"];5670[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];845 -> 5670[label="",style="solid", color="burlywood", weight=9]; 5670 -> 941[label="",style="solid", color="burlywood", weight=3]; 5671[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];845 -> 5671[label="",style="solid", color="burlywood", weight=9]; 5671 -> 942[label="",style="solid", color="burlywood", weight=3]; 846[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) (Pos vuz580)) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];846 -> 943[label="",style="solid", color="black", weight=3]; 847[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) (Neg vuz580)) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="burlywood",shape="box"];5672[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];847 -> 5672[label="",style="solid", color="burlywood", weight=9]; 5672 -> 944[label="",style="solid", color="burlywood", weight=3]; 5673[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];847 -> 5673[label="",style="solid", color="burlywood", weight=9]; 5673 -> 945[label="",style="solid", color="burlywood", weight=3]; 848[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos vuz580)) vuz54 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5674[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];848 -> 5674[label="",style="solid", color="burlywood", weight=9]; 5674 -> 946[label="",style="solid", color="burlywood", weight=3]; 5675[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];848 -> 5675[label="",style="solid", color="burlywood", weight=9]; 5675 -> 947[label="",style="solid", color="burlywood", weight=3]; 849[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg vuz580)) vuz54 (Neg Zero))",fontsize=16,color="burlywood",shape="box"];5676[label="vuz580/Succ vuz5800",fontsize=10,color="white",style="solid",shape="box"];849 -> 5676[label="",style="solid", color="burlywood", weight=9]; 5676 -> 948[label="",style="solid", color="burlywood", weight=3]; 5677[label="vuz580/Zero",fontsize=10,color="white",style="solid",shape="box"];849 -> 5677[label="",style="solid", color="burlywood", weight=9]; 5677 -> 949[label="",style="solid", color="burlywood", weight=3]; 852 -> 547[label="",style="dashed", color="red", weight=0]; 852[label="primEqNat vuz2700 vuz5500",fontsize=16,color="magenta"];852 -> 950[label="",style="dashed", color="magenta", weight=3]; 852 -> 951[label="",style="dashed", color="magenta", weight=3]; 853[label="False",fontsize=16,color="green",shape="box"];854[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];854 -> 952[label="",style="solid", color="black", weight=3]; 855[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];855 -> 953[label="",style="solid", color="black", weight=3]; 856 -> 413[label="",style="dashed", color="red", weight=0]; 856[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) (Pos Zero))",fontsize=16,color="magenta"];856 -> 954[label="",style="dashed", color="magenta", weight=3]; 857[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="black",shape="triangle"];857 -> 955[label="",style="solid", color="black", weight=3]; 863[label="primQuotInt (Neg vuz180) (gcd1 False (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];863 -> 956[label="",style="solid", color="black", weight=3]; 864[label="primQuotInt (Neg vuz180) (gcd1 True (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];864 -> 957[label="",style="solid", color="black", weight=3]; 861 -> 547[label="",style="dashed", color="red", weight=0]; 861[label="primEqNat vuz2700 vuz5500",fontsize=16,color="magenta"];861 -> 958[label="",style="dashed", color="magenta", weight=3]; 861 -> 959[label="",style="dashed", color="magenta", weight=3]; 862[label="False",fontsize=16,color="green",shape="box"];865 -> 413[label="",style="dashed", color="red", weight=0]; 865[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) (Neg Zero))",fontsize=16,color="magenta"];865 -> 960[label="",style="dashed", color="magenta", weight=3]; 866 -> 857[label="",style="dashed", color="red", weight=0]; 866[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];869 -> 547[label="",style="dashed", color="red", weight=0]; 869[label="primEqNat vuz2700 vuz5600",fontsize=16,color="magenta"];869 -> 961[label="",style="dashed", color="magenta", weight=3]; 869 -> 962[label="",style="dashed", color="magenta", weight=3]; 870[label="False",fontsize=16,color="green",shape="box"];871[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];871 -> 963[label="",style="solid", color="black", weight=3]; 872[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="black",shape="box"];872 -> 964[label="",style="solid", color="black", weight=3]; 873 -> 416[label="",style="dashed", color="red", weight=0]; 873[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) (Pos Zero))",fontsize=16,color="magenta"];873 -> 965[label="",style="dashed", color="magenta", weight=3]; 874 -> 857[label="",style="dashed", color="red", weight=0]; 874[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];880[label="primQuotInt (Neg vuz180) (gcd1 False (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];880 -> 968[label="",style="solid", color="black", weight=3]; 881[label="primQuotInt (Neg vuz180) (gcd1 True (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="black",shape="box"];881 -> 969[label="",style="solid", color="black", weight=3]; 878 -> 547[label="",style="dashed", color="red", weight=0]; 878[label="primEqNat vuz2700 vuz5600",fontsize=16,color="magenta"];878 -> 966[label="",style="dashed", color="magenta", weight=3]; 878 -> 967[label="",style="dashed", color="magenta", weight=3]; 879[label="False",fontsize=16,color="green",shape="box"];882 -> 416[label="",style="dashed", color="red", weight=0]; 882[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) (Neg Zero))",fontsize=16,color="magenta"];882 -> 970[label="",style="dashed", color="magenta", weight=3]; 883 -> 857[label="",style="dashed", color="red", weight=0]; 883[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];884[label="Integer vuz30 * signumReal1 (Integer (Pos (Succ vuz3800))) (primCmpInt (Pos (Succ vuz3800)) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos (Succ vuz3800))) (primCmpInt (Pos (Succ vuz3800)) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];884 -> 971[label="",style="solid", color="black", weight=3]; 885[label="Integer vuz30 * signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];885 -> 972[label="",style="solid", color="black", weight=3]; 886[label="Integer vuz30 * signumReal1 (Integer (Neg (Succ vuz3800))) (primCmpInt (Neg (Succ vuz3800)) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg (Succ vuz3800))) (primCmpInt (Neg (Succ vuz3800)) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];886 -> 973[label="",style="solid", color="black", weight=3]; 887[label="Integer vuz30 * signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos Zero) == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos Zero) == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];887 -> 974[label="",style="solid", color="black", weight=3]; 888[label="Integer vuz59 `quot` gcd3 (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];888 -> 975[label="",style="solid", color="black", weight=3]; 889[label="Integer vuz32 `quot` gcd2 (Integer vuz110 * Integer vuz120 * signum (Integer vuz34) == fromInt (Pos Zero)) (Integer vuz110 * Integer vuz120 * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="black",shape="box"];889 -> 976[label="",style="solid", color="black", weight=3]; 890[label="vuz32",fontsize=16,color="green",shape="box"];2415[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5678[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5678[label="",style="solid", color="blue", weight=9]; 5678 -> 2451[label="",style="solid", color="blue", weight=3]; 5679[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5679[label="",style="solid", color="blue", weight=9]; 5679 -> 2452[label="",style="solid", color="blue", weight=3]; 5680[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5680[label="",style="solid", color="blue", weight=9]; 5680 -> 2453[label="",style="solid", color="blue", weight=3]; 5681[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5681[label="",style="solid", color="blue", weight=9]; 5681 -> 2454[label="",style="solid", color="blue", weight=3]; 5682[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2415 -> 5682[label="",style="solid", color="blue", weight=9]; 5682 -> 2455[label="",style="solid", color="blue", weight=3]; 2416[label="signumReal0 (Pos (Succ vuz134)) otherwise",fontsize=16,color="black",shape="box"];2416 -> 2456[label="",style="solid", color="black", weight=3]; 2449[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5683[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5683[label="",style="solid", color="blue", weight=9]; 5683 -> 2498[label="",style="solid", color="blue", weight=3]; 5684[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5684[label="",style="solid", color="blue", weight=9]; 5684 -> 2499[label="",style="solid", color="blue", weight=3]; 5685[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5685[label="",style="solid", color="blue", weight=9]; 5685 -> 2500[label="",style="solid", color="blue", weight=3]; 5686[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5686[label="",style="solid", color="blue", weight=9]; 5686 -> 2501[label="",style="solid", color="blue", weight=3]; 5687[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2449 -> 5687[label="",style="solid", color="blue", weight=9]; 5687 -> 2502[label="",style="solid", color="blue", weight=3]; 2450[label="signumReal0 (Neg (Succ vuz138)) otherwise",fontsize=16,color="black",shape="box"];2450 -> 2503[label="",style="solid", color="black", weight=3]; 901[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) (Pos (Succ vuz5700))) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];901 -> 988[label="",style="solid", color="black", weight=3]; 902[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz4900)) (Pos Zero)) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];902 -> 989[label="",style="solid", color="black", weight=3]; 903 -> 1042[label="",style="dashed", color="red", weight=0]; 903[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="magenta"];903 -> 1043[label="",style="dashed", color="magenta", weight=3]; 904[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos (Succ vuz5700))) vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];904 -> 991[label="",style="solid", color="black", weight=3]; 905[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos Zero)) vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];905 -> 992[label="",style="solid", color="black", weight=3]; 906[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg (Succ vuz5700))) vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];906 -> 993[label="",style="solid", color="black", weight=3]; 907[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg Zero)) vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];907 -> 994[label="",style="solid", color="black", weight=3]; 908 -> 1051[label="",style="dashed", color="red", weight=0]; 908[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="magenta"];908 -> 1052[label="",style="dashed", color="magenta", weight=3]; 909[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) (Neg (Succ vuz5700))) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];909 -> 996[label="",style="solid", color="black", weight=3]; 910[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz4900)) (Neg Zero)) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];910 -> 997[label="",style="solid", color="black", weight=3]; 911[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos (Succ vuz5700))) vuz50 (Neg Zero))",fontsize=16,color="black",shape="box"];911 -> 998[label="",style="solid", color="black", weight=3]; 912[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos Zero)) vuz50 (Neg Zero))",fontsize=16,color="black",shape="box"];912 -> 999[label="",style="solid", color="black", weight=3]; 913[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg (Succ vuz5700))) vuz50 (Neg Zero))",fontsize=16,color="black",shape="box"];913 -> 1000[label="",style="solid", color="black", weight=3]; 914[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg Zero)) vuz50 (Neg Zero))",fontsize=16,color="black",shape="box"];914 -> 1001[label="",style="solid", color="black", weight=3]; 915[label="vuz5100",fontsize=16,color="green",shape="box"];916[label="vuz2700",fontsize=16,color="green",shape="box"];917 -> 407[label="",style="dashed", color="red", weight=0]; 917[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];917 -> 1002[label="",style="dashed", color="magenta", weight=3]; 918 -> 815[label="",style="dashed", color="red", weight=0]; 918[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];919[label="Pos Zero",fontsize=16,color="green",shape="box"];920[label="error []",fontsize=16,color="red",shape="box"];921 -> 407[label="",style="dashed", color="red", weight=0]; 921[label="primQuotInt (Pos vuz180) (gcd0 (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];921 -> 1003[label="",style="dashed", color="magenta", weight=3]; 922 -> 815[label="",style="dashed", color="red", weight=0]; 922[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];923[label="vuz5100",fontsize=16,color="green",shape="box"];924[label="vuz2700",fontsize=16,color="green",shape="box"];925[label="Neg Zero",fontsize=16,color="green",shape="box"];926[label="vuz5200",fontsize=16,color="green",shape="box"];927[label="vuz2700",fontsize=16,color="green",shape="box"];928 -> 410[label="",style="dashed", color="red", weight=0]; 928[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];928 -> 1004[label="",style="dashed", color="magenta", weight=3]; 929 -> 815[label="",style="dashed", color="red", weight=0]; 929[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];930[label="Pos Zero",fontsize=16,color="green",shape="box"];931 -> 410[label="",style="dashed", color="red", weight=0]; 931[label="primQuotInt (Pos vuz180) (gcd0 (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];931 -> 1005[label="",style="dashed", color="magenta", weight=3]; 932 -> 815[label="",style="dashed", color="red", weight=0]; 932[label="primQuotInt (Pos vuz180) (error [])",fontsize=16,color="magenta"];933[label="vuz5200",fontsize=16,color="green",shape="box"];934[label="vuz2700",fontsize=16,color="green",shape="box"];935[label="Neg Zero",fontsize=16,color="green",shape="box"];936[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) (Pos (Succ vuz5800))) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];936 -> 1006[label="",style="solid", color="black", weight=3]; 937[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos (Succ vuz5300)) (Pos Zero)) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];937 -> 1007[label="",style="solid", color="black", weight=3]; 938 -> 1059[label="",style="dashed", color="red", weight=0]; 938[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="magenta"];938 -> 1060[label="",style="dashed", color="magenta", weight=3]; 939[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos (Succ vuz5800))) vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];939 -> 1009[label="",style="solid", color="black", weight=3]; 940[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Pos Zero)) vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];940 -> 1010[label="",style="solid", color="black", weight=3]; 941[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg (Succ vuz5800))) vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];941 -> 1011[label="",style="solid", color="black", weight=3]; 942[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Pos Zero) (Neg Zero)) vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];942 -> 1012[label="",style="solid", color="black", weight=3]; 943 -> 1068[label="",style="dashed", color="red", weight=0]; 943[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="magenta"];943 -> 1069[label="",style="dashed", color="magenta", weight=3]; 944[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) (Neg (Succ vuz5800))) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];944 -> 1014[label="",style="solid", color="black", weight=3]; 945[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg (Succ vuz5300)) (Neg Zero)) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];945 -> 1015[label="",style="solid", color="black", weight=3]; 946[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos (Succ vuz5800))) vuz54 (Neg Zero))",fontsize=16,color="black",shape="box"];946 -> 1016[label="",style="solid", color="black", weight=3]; 947[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Pos Zero)) vuz54 (Neg Zero))",fontsize=16,color="black",shape="box"];947 -> 1017[label="",style="solid", color="black", weight=3]; 948[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg (Succ vuz5800))) vuz54 (Neg Zero))",fontsize=16,color="black",shape="box"];948 -> 1018[label="",style="solid", color="black", weight=3]; 949[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqInt (Neg Zero) (Neg Zero)) vuz54 (Neg Zero))",fontsize=16,color="black",shape="box"];949 -> 1019[label="",style="solid", color="black", weight=3]; 950[label="vuz5500",fontsize=16,color="green",shape="box"];951[label="vuz2700",fontsize=16,color="green",shape="box"];952 -> 413[label="",style="dashed", color="red", weight=0]; 952[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];952 -> 1020[label="",style="dashed", color="magenta", weight=3]; 953 -> 857[label="",style="dashed", color="red", weight=0]; 953[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];954[label="Pos Zero",fontsize=16,color="green",shape="box"];955[label="error []",fontsize=16,color="red",shape="box"];956 -> 413[label="",style="dashed", color="red", weight=0]; 956[label="primQuotInt (Neg vuz180) (gcd0 (Pos Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];956 -> 1021[label="",style="dashed", color="magenta", weight=3]; 957 -> 857[label="",style="dashed", color="red", weight=0]; 957[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];958[label="vuz5500",fontsize=16,color="green",shape="box"];959[label="vuz2700",fontsize=16,color="green",shape="box"];960[label="Neg Zero",fontsize=16,color="green",shape="box"];961[label="vuz5600",fontsize=16,color="green",shape="box"];962[label="vuz2700",fontsize=16,color="green",shape="box"];963 -> 416[label="",style="dashed", color="red", weight=0]; 963[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) (Pos (Succ vuz2700)))",fontsize=16,color="magenta"];963 -> 1022[label="",style="dashed", color="magenta", weight=3]; 964 -> 857[label="",style="dashed", color="red", weight=0]; 964[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];965[label="Pos Zero",fontsize=16,color="green",shape="box"];968 -> 416[label="",style="dashed", color="red", weight=0]; 968[label="primQuotInt (Neg vuz180) (gcd0 (Neg Zero) (Neg (Succ vuz2700)))",fontsize=16,color="magenta"];968 -> 1023[label="",style="dashed", color="magenta", weight=3]; 969 -> 857[label="",style="dashed", color="red", weight=0]; 969[label="primQuotInt (Neg vuz180) (error [])",fontsize=16,color="magenta"];966[label="vuz5600",fontsize=16,color="green",shape="box"];967[label="vuz2700",fontsize=16,color="green",shape="box"];970[label="Neg Zero",fontsize=16,color="green",shape="box"];971[label="Integer vuz30 * signumReal1 (Integer (Pos (Succ vuz3800))) (primCmpNat (Succ vuz3800) Zero == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos (Succ vuz3800))) (primCmpNat (Succ vuz3800) Zero == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];971 -> 1024[label="",style="solid", color="black", weight=3]; 972[label="Integer vuz30 * signumReal1 (Integer (Pos Zero)) (EQ == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos Zero)) (EQ == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];972 -> 1025[label="",style="solid", color="black", weight=3]; 973[label="Integer vuz30 * signumReal1 (Integer (Neg (Succ vuz3800))) (LT == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg (Succ vuz3800))) (LT == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];973 -> 1026[label="",style="solid", color="black", weight=3]; 974[label="Integer vuz30 * signumReal1 (Integer (Neg Zero)) (EQ == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg Zero)) (EQ == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];974 -> 1027[label="",style="solid", color="black", weight=3]; 975 -> 1028[label="",style="dashed", color="red", weight=0]; 975[label="Integer vuz59 `quot` gcd2 (Integer vuz60 == fromInt (Pos Zero)) (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="magenta"];975 -> 1029[label="",style="dashed", color="magenta", weight=3]; 976 -> 1893[label="",style="dashed", color="red", weight=0]; 976[label="Integer vuz32 `quot` gcd2 (Integer (primMulInt vuz110 vuz120) * signum (Integer vuz34) == fromInt (Pos Zero)) (Integer (primMulInt vuz110 vuz120) * signum (Integer vuz34)) (Integer vuz32)",fontsize=16,color="magenta"];976 -> 1894[label="",style="dashed", color="magenta", weight=3]; 976 -> 1895[label="",style="dashed", color="magenta", weight=3]; 976 -> 1896[label="",style="dashed", color="magenta", weight=3]; 976 -> 1897[label="",style="dashed", color="magenta", weight=3]; 2451[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];2451 -> 2504[label="",style="solid", color="black", weight=3]; 2452 -> 2310[label="",style="dashed", color="red", weight=0]; 2452[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2453[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];2453 -> 2505[label="",style="solid", color="black", weight=3]; 2454[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];2454 -> 2506[label="",style="solid", color="black", weight=3]; 2455 -> 584[label="",style="dashed", color="red", weight=0]; 2455[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2456[label="signumReal0 (Pos (Succ vuz134)) True",fontsize=16,color="black",shape="box"];2456 -> 2507[label="",style="solid", color="black", weight=3]; 2498 -> 2451[label="",style="dashed", color="red", weight=0]; 2498[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2499 -> 2310[label="",style="dashed", color="red", weight=0]; 2499[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2500 -> 2453[label="",style="dashed", color="red", weight=0]; 2500[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2501 -> 2454[label="",style="dashed", color="red", weight=0]; 2501[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2502 -> 584[label="",style="dashed", color="red", weight=0]; 2502[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2503[label="signumReal0 (Neg (Succ vuz138)) True",fontsize=16,color="black",shape="box"];2503 -> 2559[label="",style="solid", color="black", weight=3]; 988 -> 1042[label="",style="dashed", color="red", weight=0]; 988[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqNat vuz4900 vuz5700) vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="magenta"];988 -> 1044[label="",style="dashed", color="magenta", weight=3]; 989 -> 1042[label="",style="dashed", color="red", weight=0]; 989[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="magenta"];989 -> 1045[label="",style="dashed", color="magenta", weight=3]; 1043[label="False",fontsize=16,color="green",shape="box"];1042[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 vuz72 vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="burlywood",shape="triangle"];5688[label="vuz72/False",fontsize=10,color="white",style="solid",shape="box"];1042 -> 5688[label="",style="solid", color="burlywood", weight=9]; 5688 -> 1046[label="",style="solid", color="burlywood", weight=3]; 5689[label="vuz72/True",fontsize=10,color="white",style="solid",shape="box"];1042 -> 5689[label="",style="solid", color="burlywood", weight=9]; 5689 -> 1047[label="",style="solid", color="burlywood", weight=3]; 991[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos Zero))",fontsize=16,color="black",shape="triangle"];991 -> 1048[label="",style="solid", color="black", weight=3]; 992[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Pos Zero))",fontsize=16,color="black",shape="triangle"];992 -> 1049[label="",style="solid", color="black", weight=3]; 993 -> 991[label="",style="dashed", color="red", weight=0]; 993[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos Zero))",fontsize=16,color="magenta"];994 -> 992[label="",style="dashed", color="red", weight=0]; 994[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Pos Zero))",fontsize=16,color="magenta"];1052[label="False",fontsize=16,color="green",shape="box"];1051[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 vuz73 vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="burlywood",shape="triangle"];5690[label="vuz73/False",fontsize=10,color="white",style="solid",shape="box"];1051 -> 5690[label="",style="solid", color="burlywood", weight=9]; 5690 -> 1055[label="",style="solid", color="burlywood", weight=3]; 5691[label="vuz73/True",fontsize=10,color="white",style="solid",shape="box"];1051 -> 5691[label="",style="solid", color="burlywood", weight=9]; 5691 -> 1056[label="",style="solid", color="burlywood", weight=3]; 996 -> 1051[label="",style="dashed", color="red", weight=0]; 996[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 (primEqNat vuz4900 vuz5700) vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="magenta"];996 -> 1053[label="",style="dashed", color="magenta", weight=3]; 997 -> 1051[label="",style="dashed", color="red", weight=0]; 997[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="magenta"];997 -> 1054[label="",style="dashed", color="magenta", weight=3]; 998[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg Zero))",fontsize=16,color="black",shape="triangle"];998 -> 1057[label="",style="solid", color="black", weight=3]; 999[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Neg Zero))",fontsize=16,color="black",shape="triangle"];999 -> 1058[label="",style="solid", color="black", weight=3]; 1000 -> 998[label="",style="dashed", color="red", weight=0]; 1000[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg Zero))",fontsize=16,color="magenta"];1001 -> 999[label="",style="dashed", color="red", weight=0]; 1001[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Neg Zero))",fontsize=16,color="magenta"];1002[label="Pos (Succ vuz2700)",fontsize=16,color="green",shape="box"];1003[label="Neg (Succ vuz2700)",fontsize=16,color="green",shape="box"];1004[label="Pos (Succ vuz2700)",fontsize=16,color="green",shape="box"];1005[label="Neg (Succ vuz2700)",fontsize=16,color="green",shape="box"];1006 -> 1059[label="",style="dashed", color="red", weight=0]; 1006[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqNat vuz5300 vuz5800) vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="magenta"];1006 -> 1061[label="",style="dashed", color="magenta", weight=3]; 1007 -> 1059[label="",style="dashed", color="red", weight=0]; 1007[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="magenta"];1007 -> 1062[label="",style="dashed", color="magenta", weight=3]; 1060[label="False",fontsize=16,color="green",shape="box"];1059[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 vuz74 vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="burlywood",shape="triangle"];5692[label="vuz74/False",fontsize=10,color="white",style="solid",shape="box"];1059 -> 5692[label="",style="solid", color="burlywood", weight=9]; 5692 -> 1063[label="",style="solid", color="burlywood", weight=3]; 5693[label="vuz74/True",fontsize=10,color="white",style="solid",shape="box"];1059 -> 5693[label="",style="solid", color="burlywood", weight=9]; 5693 -> 1064[label="",style="solid", color="burlywood", weight=3]; 1009[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos Zero))",fontsize=16,color="black",shape="triangle"];1009 -> 1065[label="",style="solid", color="black", weight=3]; 1010[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Pos Zero))",fontsize=16,color="black",shape="triangle"];1010 -> 1066[label="",style="solid", color="black", weight=3]; 1011 -> 1009[label="",style="dashed", color="red", weight=0]; 1011[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos Zero))",fontsize=16,color="magenta"];1012 -> 1010[label="",style="dashed", color="red", weight=0]; 1012[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Pos Zero))",fontsize=16,color="magenta"];1069[label="False",fontsize=16,color="green",shape="box"];1068[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 vuz75 vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="burlywood",shape="triangle"];5694[label="vuz75/False",fontsize=10,color="white",style="solid",shape="box"];1068 -> 5694[label="",style="solid", color="burlywood", weight=9]; 5694 -> 1072[label="",style="solid", color="burlywood", weight=3]; 5695[label="vuz75/True",fontsize=10,color="white",style="solid",shape="box"];1068 -> 5695[label="",style="solid", color="burlywood", weight=9]; 5695 -> 1073[label="",style="solid", color="burlywood", weight=3]; 1014 -> 1068[label="",style="dashed", color="red", weight=0]; 1014[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 (primEqNat vuz5300 vuz5800) vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="magenta"];1014 -> 1070[label="",style="dashed", color="magenta", weight=3]; 1015 -> 1068[label="",style="dashed", color="red", weight=0]; 1015[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="magenta"];1015 -> 1071[label="",style="dashed", color="magenta", weight=3]; 1016[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg Zero))",fontsize=16,color="black",shape="triangle"];1016 -> 1074[label="",style="solid", color="black", weight=3]; 1017[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Neg Zero))",fontsize=16,color="black",shape="triangle"];1017 -> 1075[label="",style="solid", color="black", weight=3]; 1018 -> 1016[label="",style="dashed", color="red", weight=0]; 1018[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg Zero))",fontsize=16,color="magenta"];1019 -> 1017[label="",style="dashed", color="red", weight=0]; 1019[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Neg Zero))",fontsize=16,color="magenta"];1020[label="Pos (Succ vuz2700)",fontsize=16,color="green",shape="box"];1021[label="Neg (Succ vuz2700)",fontsize=16,color="green",shape="box"];1022[label="Pos (Succ vuz2700)",fontsize=16,color="green",shape="box"];1023[label="Neg (Succ vuz2700)",fontsize=16,color="green",shape="box"];1024[label="Integer vuz30 * signumReal1 (Integer (Pos (Succ vuz3800))) (GT == GT) `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos (Succ vuz3800))) (GT == GT)) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1024 -> 1076[label="",style="solid", color="black", weight=3]; 1025[label="Integer vuz30 * signumReal1 (Integer (Pos Zero)) False `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos Zero)) False) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1025 -> 1077[label="",style="solid", color="black", weight=3]; 1026[label="Integer vuz30 * signumReal1 (Integer (Neg (Succ vuz3800))) False `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg (Succ vuz3800))) False) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1026 -> 1078[label="",style="solid", color="black", weight=3]; 1027[label="Integer vuz30 * signumReal1 (Integer (Neg Zero)) False `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Neg Zero)) False) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1027 -> 1079[label="",style="solid", color="black", weight=3]; 1029 -> 331[label="",style="dashed", color="red", weight=0]; 1029[label="Integer vuz60 == fromInt (Pos Zero)",fontsize=16,color="magenta"];1029 -> 1080[label="",style="dashed", color="magenta", weight=3]; 1028[label="Integer vuz59 `quot` gcd2 vuz69 (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="burlywood",shape="triangle"];5696[label="vuz69/False",fontsize=10,color="white",style="solid",shape="box"];1028 -> 5696[label="",style="solid", color="burlywood", weight=9]; 5696 -> 1081[label="",style="solid", color="burlywood", weight=3]; 5697[label="vuz69/True",fontsize=10,color="white",style="solid",shape="box"];1028 -> 5697[label="",style="solid", color="burlywood", weight=9]; 5697 -> 1082[label="",style="solid", color="burlywood", weight=3]; 1894[label="signum (Integer vuz34)",fontsize=16,color="black",shape="triangle"];1894 -> 1966[label="",style="solid", color="black", weight=3]; 1895 -> 25[label="",style="dashed", color="red", weight=0]; 1895[label="primMulInt vuz110 vuz120",fontsize=16,color="magenta"];1895 -> 1967[label="",style="dashed", color="magenta", weight=3]; 1895 -> 1968[label="",style="dashed", color="magenta", weight=3]; 1896 -> 25[label="",style="dashed", color="red", weight=0]; 1896[label="primMulInt vuz110 vuz120",fontsize=16,color="magenta"];1896 -> 1969[label="",style="dashed", color="magenta", weight=3]; 1896 -> 1970[label="",style="dashed", color="magenta", weight=3]; 1897 -> 1894[label="",style="dashed", color="red", weight=0]; 1897[label="signum (Integer vuz34)",fontsize=16,color="magenta"];1893[label="Integer vuz32 `quot` gcd2 (Integer vuz71 * vuz104 == fromInt (Pos Zero)) (Integer vuz70 * vuz103) (Integer vuz32)",fontsize=16,color="burlywood",shape="triangle"];5698[label="vuz104/Integer vuz1040",fontsize=10,color="white",style="solid",shape="box"];1893 -> 5698[label="",style="solid", color="burlywood", weight=9]; 5698 -> 1971[label="",style="solid", color="burlywood", weight=3]; 2504[label="primIntToFloat (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];2504 -> 2560[label="",style="solid", color="black", weight=3]; 2310[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];2310 -> 2349[label="",style="solid", color="black", weight=3]; 2505[label="primIntToDouble (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];2505 -> 2561[label="",style="solid", color="black", weight=3]; 2506[label="intToRatio (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];2506 -> 2562[label="",style="solid", color="black", weight=3]; 2507[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5699[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5699[label="",style="solid", color="blue", weight=9]; 5699 -> 2563[label="",style="solid", color="blue", weight=3]; 5700[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5700[label="",style="solid", color="blue", weight=9]; 5700 -> 2564[label="",style="solid", color="blue", weight=3]; 5701[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5701[label="",style="solid", color="blue", weight=9]; 5701 -> 2565[label="",style="solid", color="blue", weight=3]; 5702[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5702[label="",style="solid", color="blue", weight=9]; 5702 -> 2566[label="",style="solid", color="blue", weight=3]; 5703[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2507 -> 5703[label="",style="solid", color="blue", weight=9]; 5703 -> 2567[label="",style="solid", color="blue", weight=3]; 2559[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5704[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5704[label="",style="solid", color="blue", weight=9]; 5704 -> 2600[label="",style="solid", color="blue", weight=3]; 5705[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5705[label="",style="solid", color="blue", weight=9]; 5705 -> 2601[label="",style="solid", color="blue", weight=3]; 5706[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5706[label="",style="solid", color="blue", weight=9]; 5706 -> 2602[label="",style="solid", color="blue", weight=3]; 5707[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5707[label="",style="solid", color="blue", weight=9]; 5707 -> 2603[label="",style="solid", color="blue", weight=3]; 5708[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2559 -> 5708[label="",style="solid", color="blue", weight=9]; 5708 -> 2604[label="",style="solid", color="blue", weight=3]; 1044 -> 547[label="",style="dashed", color="red", weight=0]; 1044[label="primEqNat vuz4900 vuz5700",fontsize=16,color="magenta"];1044 -> 1099[label="",style="dashed", color="magenta", weight=3]; 1044 -> 1100[label="",style="dashed", color="magenta", weight=3]; 1045[label="False",fontsize=16,color="green",shape="box"];1046[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];1046 -> 1101[label="",style="solid", color="black", weight=3]; 1047[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="black",shape="box"];1047 -> 1102[label="",style="solid", color="black", weight=3]; 1048[label="primQuotInt (Pos vuz180) (gcd0Gcd'0 vuz50 (Pos Zero))",fontsize=16,color="black",shape="box"];1048 -> 1103[label="",style="solid", color="black", weight=3]; 1049[label="primQuotInt (Pos vuz180) vuz50",fontsize=16,color="burlywood",shape="triangle"];5709[label="vuz50/Pos vuz500",fontsize=10,color="white",style="solid",shape="box"];1049 -> 5709[label="",style="solid", color="burlywood", weight=9]; 5709 -> 1104[label="",style="solid", color="burlywood", weight=3]; 5710[label="vuz50/Neg vuz500",fontsize=10,color="white",style="solid",shape="box"];1049 -> 5710[label="",style="solid", color="burlywood", weight=9]; 5710 -> 1105[label="",style="solid", color="burlywood", weight=3]; 1055[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 False vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];1055 -> 1106[label="",style="solid", color="black", weight=3]; 1056[label="primQuotInt (Pos vuz180) (gcd0Gcd'1 True vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="black",shape="box"];1056 -> 1107[label="",style="solid", color="black", weight=3]; 1053 -> 547[label="",style="dashed", color="red", weight=0]; 1053[label="primEqNat vuz4900 vuz5700",fontsize=16,color="magenta"];1053 -> 1108[label="",style="dashed", color="magenta", weight=3]; 1053 -> 1109[label="",style="dashed", color="magenta", weight=3]; 1054[label="False",fontsize=16,color="green",shape="box"];1057 -> 1049[label="",style="dashed", color="red", weight=0]; 1057[label="primQuotInt (Pos vuz180) (gcd0Gcd'0 vuz50 (Neg Zero))",fontsize=16,color="magenta"];1057 -> 1110[label="",style="dashed", color="magenta", weight=3]; 1058 -> 1049[label="",style="dashed", color="red", weight=0]; 1058[label="primQuotInt (Pos vuz180) vuz50",fontsize=16,color="magenta"];1061 -> 547[label="",style="dashed", color="red", weight=0]; 1061[label="primEqNat vuz5300 vuz5800",fontsize=16,color="magenta"];1061 -> 1111[label="",style="dashed", color="magenta", weight=3]; 1061 -> 1112[label="",style="dashed", color="magenta", weight=3]; 1062[label="False",fontsize=16,color="green",shape="box"];1063[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];1063 -> 1113[label="",style="solid", color="black", weight=3]; 1064[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="black",shape="box"];1064 -> 1114[label="",style="solid", color="black", weight=3]; 1065[label="primQuotInt (Neg vuz180) (gcd0Gcd'0 vuz54 (Pos Zero))",fontsize=16,color="black",shape="box"];1065 -> 1115[label="",style="solid", color="black", weight=3]; 1066[label="primQuotInt (Neg vuz180) vuz54",fontsize=16,color="burlywood",shape="triangle"];5711[label="vuz54/Pos vuz540",fontsize=10,color="white",style="solid",shape="box"];1066 -> 5711[label="",style="solid", color="burlywood", weight=9]; 5711 -> 1116[label="",style="solid", color="burlywood", weight=3]; 5712[label="vuz54/Neg vuz540",fontsize=10,color="white",style="solid",shape="box"];1066 -> 5712[label="",style="solid", color="burlywood", weight=9]; 5712 -> 1117[label="",style="solid", color="burlywood", weight=3]; 1072[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 False vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];1072 -> 1120[label="",style="solid", color="black", weight=3]; 1073[label="primQuotInt (Neg vuz180) (gcd0Gcd'1 True vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="black",shape="box"];1073 -> 1121[label="",style="solid", color="black", weight=3]; 1070 -> 547[label="",style="dashed", color="red", weight=0]; 1070[label="primEqNat vuz5300 vuz5800",fontsize=16,color="magenta"];1070 -> 1118[label="",style="dashed", color="magenta", weight=3]; 1070 -> 1119[label="",style="dashed", color="magenta", weight=3]; 1071[label="False",fontsize=16,color="green",shape="box"];1074 -> 1066[label="",style="dashed", color="red", weight=0]; 1074[label="primQuotInt (Neg vuz180) (gcd0Gcd'0 vuz54 (Neg Zero))",fontsize=16,color="magenta"];1074 -> 1122[label="",style="dashed", color="magenta", weight=3]; 1075 -> 1066[label="",style="dashed", color="red", weight=0]; 1075[label="primQuotInt (Neg vuz180) vuz54",fontsize=16,color="magenta"];1076[label="Integer vuz30 * signumReal1 (Integer (Pos (Succ vuz3800))) True `quot` reduce2D (Integer vuz31 * signumReal1 (Integer (Pos (Succ vuz3800))) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1076 -> 1123[label="",style="solid", color="black", weight=3]; 1077[label="Integer vuz30 * signumReal0 (Integer (Pos Zero)) otherwise `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Pos Zero)) otherwise) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1077 -> 1124[label="",style="solid", color="black", weight=3]; 1078[label="Integer vuz30 * signumReal0 (Integer (Neg (Succ vuz3800))) otherwise `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Neg (Succ vuz3800))) otherwise) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1078 -> 1125[label="",style="solid", color="black", weight=3]; 1079[label="Integer vuz30 * signumReal0 (Integer (Neg Zero)) otherwise `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Neg Zero)) otherwise) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1079 -> 1126[label="",style="solid", color="black", weight=3]; 1080[label="vuz60",fontsize=16,color="green",shape="box"];1081[label="Integer vuz59 `quot` gcd2 False (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1081 -> 1127[label="",style="solid", color="black", weight=3]; 1082[label="Integer vuz59 `quot` gcd2 True (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1082 -> 1128[label="",style="solid", color="black", weight=3]; 1966[label="signumReal (Integer vuz34)",fontsize=16,color="black",shape="box"];1966 -> 1987[label="",style="solid", color="black", weight=3]; 1967[label="vuz120",fontsize=16,color="green",shape="box"];1968[label="vuz110",fontsize=16,color="green",shape="box"];1969[label="vuz120",fontsize=16,color="green",shape="box"];1970[label="vuz110",fontsize=16,color="green",shape="box"];1971[label="Integer vuz32 `quot` gcd2 (Integer vuz71 * Integer vuz1040 == fromInt (Pos Zero)) (Integer vuz70 * vuz103) (Integer vuz32)",fontsize=16,color="black",shape="box"];1971 -> 1988[label="",style="solid", color="black", weight=3]; 2560[label="Float (Pos (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2349[label="Integer (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2561[label="Double (Pos (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2562[label="fromInt (Pos (Succ Zero)) :% fromInt (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2562 -> 2605[label="",style="dashed", color="green", weight=3]; 2562 -> 2606[label="",style="dashed", color="green", weight=3]; 2563[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];2563 -> 2607[label="",style="solid", color="black", weight=3]; 2564 -> 2387[label="",style="dashed", color="red", weight=0]; 2564[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2565[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];2565 -> 2608[label="",style="solid", color="black", weight=3]; 2566[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];2566 -> 2609[label="",style="solid", color="black", weight=3]; 2567 -> 711[label="",style="dashed", color="red", weight=0]; 2567[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2600 -> 2563[label="",style="dashed", color="red", weight=0]; 2600[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2601 -> 2387[label="",style="dashed", color="red", weight=0]; 2601[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2602 -> 2565[label="",style="dashed", color="red", weight=0]; 2602[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2603 -> 2566[label="",style="dashed", color="red", weight=0]; 2603[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2604 -> 711[label="",style="dashed", color="red", weight=0]; 2604[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];1099[label="vuz5700",fontsize=16,color="green",shape="box"];1100[label="vuz4900",fontsize=16,color="green",shape="box"];1101 -> 1049[label="",style="dashed", color="red", weight=0]; 1101[label="primQuotInt (Pos vuz180) (gcd0Gcd'0 vuz50 (Pos (Succ vuz4900)))",fontsize=16,color="magenta"];1101 -> 1141[label="",style="dashed", color="magenta", weight=3]; 1102 -> 1049[label="",style="dashed", color="red", weight=0]; 1102[label="primQuotInt (Pos vuz180) vuz50",fontsize=16,color="magenta"];1103 -> 1049[label="",style="dashed", color="red", weight=0]; 1103[label="primQuotInt (Pos vuz180) (gcd0Gcd' (Pos Zero) (vuz50 `rem` Pos Zero))",fontsize=16,color="magenta"];1103 -> 1142[label="",style="dashed", color="magenta", weight=3]; 1104[label="primQuotInt (Pos vuz180) (Pos vuz500)",fontsize=16,color="burlywood",shape="box"];5713[label="vuz500/Succ vuz5000",fontsize=10,color="white",style="solid",shape="box"];1104 -> 5713[label="",style="solid", color="burlywood", weight=9]; 5713 -> 1143[label="",style="solid", color="burlywood", weight=3]; 5714[label="vuz500/Zero",fontsize=10,color="white",style="solid",shape="box"];1104 -> 5714[label="",style="solid", color="burlywood", weight=9]; 5714 -> 1144[label="",style="solid", color="burlywood", weight=3]; 1105[label="primQuotInt (Pos vuz180) (Neg vuz500)",fontsize=16,color="burlywood",shape="box"];5715[label="vuz500/Succ vuz5000",fontsize=10,color="white",style="solid",shape="box"];1105 -> 5715[label="",style="solid", color="burlywood", weight=9]; 5715 -> 1145[label="",style="solid", color="burlywood", weight=3]; 5716[label="vuz500/Zero",fontsize=10,color="white",style="solid",shape="box"];1105 -> 5716[label="",style="solid", color="burlywood", weight=9]; 5716 -> 1146[label="",style="solid", color="burlywood", weight=3]; 1106 -> 1049[label="",style="dashed", color="red", weight=0]; 1106[label="primQuotInt (Pos vuz180) (gcd0Gcd'0 vuz50 (Neg (Succ vuz4900)))",fontsize=16,color="magenta"];1106 -> 1147[label="",style="dashed", color="magenta", weight=3]; 1107 -> 1049[label="",style="dashed", color="red", weight=0]; 1107[label="primQuotInt (Pos vuz180) vuz50",fontsize=16,color="magenta"];1108[label="vuz5700",fontsize=16,color="green",shape="box"];1109[label="vuz4900",fontsize=16,color="green",shape="box"];1110 -> 2055[label="",style="dashed", color="red", weight=0]; 1110[label="gcd0Gcd'0 vuz50 (Neg Zero)",fontsize=16,color="magenta"];1110 -> 2056[label="",style="dashed", color="magenta", weight=3]; 1110 -> 2057[label="",style="dashed", color="magenta", weight=3]; 1111[label="vuz5800",fontsize=16,color="green",shape="box"];1112[label="vuz5300",fontsize=16,color="green",shape="box"];1113 -> 1066[label="",style="dashed", color="red", weight=0]; 1113[label="primQuotInt (Neg vuz180) (gcd0Gcd'0 vuz54 (Pos (Succ vuz5300)))",fontsize=16,color="magenta"];1113 -> 1149[label="",style="dashed", color="magenta", weight=3]; 1114 -> 1066[label="",style="dashed", color="red", weight=0]; 1114[label="primQuotInt (Neg vuz180) vuz54",fontsize=16,color="magenta"];1115 -> 1066[label="",style="dashed", color="red", weight=0]; 1115[label="primQuotInt (Neg vuz180) (gcd0Gcd' (Pos Zero) (vuz54 `rem` Pos Zero))",fontsize=16,color="magenta"];1115 -> 1150[label="",style="dashed", color="magenta", weight=3]; 1116[label="primQuotInt (Neg vuz180) (Pos vuz540)",fontsize=16,color="burlywood",shape="box"];5717[label="vuz540/Succ vuz5400",fontsize=10,color="white",style="solid",shape="box"];1116 -> 5717[label="",style="solid", color="burlywood", weight=9]; 5717 -> 1151[label="",style="solid", color="burlywood", weight=3]; 5718[label="vuz540/Zero",fontsize=10,color="white",style="solid",shape="box"];1116 -> 5718[label="",style="solid", color="burlywood", weight=9]; 5718 -> 1152[label="",style="solid", color="burlywood", weight=3]; 1117[label="primQuotInt (Neg vuz180) (Neg vuz540)",fontsize=16,color="burlywood",shape="box"];5719[label="vuz540/Succ vuz5400",fontsize=10,color="white",style="solid",shape="box"];1117 -> 5719[label="",style="solid", color="burlywood", weight=9]; 5719 -> 1153[label="",style="solid", color="burlywood", weight=3]; 5720[label="vuz540/Zero",fontsize=10,color="white",style="solid",shape="box"];1117 -> 5720[label="",style="solid", color="burlywood", weight=9]; 5720 -> 1154[label="",style="solid", color="burlywood", weight=3]; 1120 -> 1066[label="",style="dashed", color="red", weight=0]; 1120[label="primQuotInt (Neg vuz180) (gcd0Gcd'0 vuz54 (Neg (Succ vuz5300)))",fontsize=16,color="magenta"];1120 -> 1155[label="",style="dashed", color="magenta", weight=3]; 1121 -> 1066[label="",style="dashed", color="red", weight=0]; 1121[label="primQuotInt (Neg vuz180) vuz54",fontsize=16,color="magenta"];1118[label="vuz5800",fontsize=16,color="green",shape="box"];1119[label="vuz5300",fontsize=16,color="green",shape="box"];1122 -> 2055[label="",style="dashed", color="red", weight=0]; 1122[label="gcd0Gcd'0 vuz54 (Neg Zero)",fontsize=16,color="magenta"];1122 -> 2058[label="",style="dashed", color="magenta", weight=3]; 1122 -> 2059[label="",style="dashed", color="magenta", weight=3]; 1123[label="Integer vuz30 * fromInt (Pos (Succ Zero)) `quot` reduce2D (Integer vuz31 * fromInt (Pos (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1123 -> 1157[label="",style="solid", color="black", weight=3]; 1124[label="Integer vuz30 * signumReal0 (Integer (Pos Zero)) True `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Pos Zero)) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1124 -> 1158[label="",style="solid", color="black", weight=3]; 1125[label="Integer vuz30 * signumReal0 (Integer (Neg (Succ vuz3800))) True `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Neg (Succ vuz3800))) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1125 -> 1159[label="",style="solid", color="black", weight=3]; 1126[label="Integer vuz30 * signumReal0 (Integer (Neg Zero)) True `quot` reduce2D (Integer vuz31 * signumReal0 (Integer (Neg Zero)) True) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1126 -> 1160[label="",style="solid", color="black", weight=3]; 1127[label="Integer vuz59 `quot` gcd0 (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1127 -> 1161[label="",style="solid", color="black", weight=3]; 1128[label="Integer vuz59 `quot` gcd1 (abs (Integer vuz37) == fromInt (Pos Zero)) (Integer vuz60) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1128 -> 1162[label="",style="solid", color="black", weight=3]; 1987[label="signumReal3 (Integer vuz34)",fontsize=16,color="black",shape="box"];1987 -> 2010[label="",style="solid", color="black", weight=3]; 1988 -> 2011[label="",style="dashed", color="red", weight=0]; 1988[label="Integer vuz32 `quot` gcd2 (Integer (primMulInt vuz71 vuz1040) == fromInt (Pos Zero)) (Integer (primMulInt vuz71 vuz1040)) (Integer vuz32)",fontsize=16,color="magenta"];1988 -> 2012[label="",style="dashed", color="magenta", weight=3]; 1988 -> 2013[label="",style="dashed", color="magenta", weight=3]; 2605[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5721[label="fromInt :: Int -> Integer",fontsize=10,color="white",style="solid",shape="box"];2605 -> 5721[label="",style="solid", color="blue", weight=9]; 5721 -> 2644[label="",style="solid", color="blue", weight=3]; 5722[label="fromInt :: Int -> Int",fontsize=10,color="white",style="solid",shape="box"];2605 -> 5722[label="",style="solid", color="blue", weight=9]; 5722 -> 2645[label="",style="solid", color="blue", weight=3]; 2606[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5723[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2606 -> 5723[label="",style="solid", color="blue", weight=9]; 5723 -> 2646[label="",style="solid", color="blue", weight=3]; 5724[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2606 -> 5724[label="",style="solid", color="blue", weight=9]; 5724 -> 2647[label="",style="solid", color="blue", weight=3]; 2607[label="primIntToFloat (Neg (Succ Zero))",fontsize=16,color="black",shape="box"];2607 -> 2648[label="",style="solid", color="black", weight=3]; 2387[label="fromInt (Neg (Succ Zero))",fontsize=16,color="black",shape="triangle"];2387 -> 2424[label="",style="solid", color="black", weight=3]; 2608[label="primIntToDouble (Neg (Succ Zero))",fontsize=16,color="black",shape="box"];2608 -> 2649[label="",style="solid", color="black", weight=3]; 2609[label="intToRatio (Neg (Succ Zero))",fontsize=16,color="black",shape="box"];2609 -> 2650[label="",style="solid", color="black", weight=3]; 1141 -> 2055[label="",style="dashed", color="red", weight=0]; 1141[label="gcd0Gcd'0 vuz50 (Pos (Succ vuz4900))",fontsize=16,color="magenta"];1141 -> 2060[label="",style="dashed", color="magenta", weight=3]; 1141 -> 2061[label="",style="dashed", color="magenta", weight=3]; 1142[label="gcd0Gcd' (Pos Zero) (vuz50 `rem` Pos Zero)",fontsize=16,color="black",shape="triangle"];1142 -> 1174[label="",style="solid", color="black", weight=3]; 1143[label="primQuotInt (Pos vuz180) (Pos (Succ vuz5000))",fontsize=16,color="black",shape="box"];1143 -> 1175[label="",style="solid", color="black", weight=3]; 1144[label="primQuotInt (Pos vuz180) (Pos Zero)",fontsize=16,color="black",shape="box"];1144 -> 1176[label="",style="solid", color="black", weight=3]; 1145[label="primQuotInt (Pos vuz180) (Neg (Succ vuz5000))",fontsize=16,color="black",shape="box"];1145 -> 1177[label="",style="solid", color="black", weight=3]; 1146[label="primQuotInt (Pos vuz180) (Neg Zero)",fontsize=16,color="black",shape="box"];1146 -> 1178[label="",style="solid", color="black", weight=3]; 1147 -> 2055[label="",style="dashed", color="red", weight=0]; 1147[label="gcd0Gcd'0 vuz50 (Neg (Succ vuz4900))",fontsize=16,color="magenta"];1147 -> 2062[label="",style="dashed", color="magenta", weight=3]; 1147 -> 2063[label="",style="dashed", color="magenta", weight=3]; 2056[label="vuz50",fontsize=16,color="green",shape="box"];2057[label="Neg Zero",fontsize=16,color="green",shape="box"];2055[label="gcd0Gcd'0 vuz90 vuz116",fontsize=16,color="black",shape="triangle"];2055 -> 2075[label="",style="solid", color="black", weight=3]; 1149 -> 2055[label="",style="dashed", color="red", weight=0]; 1149[label="gcd0Gcd'0 vuz54 (Pos (Succ vuz5300))",fontsize=16,color="magenta"];1149 -> 2064[label="",style="dashed", color="magenta", weight=3]; 1149 -> 2065[label="",style="dashed", color="magenta", weight=3]; 1150 -> 1142[label="",style="dashed", color="red", weight=0]; 1150[label="gcd0Gcd' (Pos Zero) (vuz54 `rem` Pos Zero)",fontsize=16,color="magenta"];1150 -> 1183[label="",style="dashed", color="magenta", weight=3]; 1151[label="primQuotInt (Neg vuz180) (Pos (Succ vuz5400))",fontsize=16,color="black",shape="box"];1151 -> 1184[label="",style="solid", color="black", weight=3]; 1152[label="primQuotInt (Neg vuz180) (Pos Zero)",fontsize=16,color="black",shape="box"];1152 -> 1185[label="",style="solid", color="black", weight=3]; 1153[label="primQuotInt (Neg vuz180) (Neg (Succ vuz5400))",fontsize=16,color="black",shape="box"];1153 -> 1186[label="",style="solid", color="black", weight=3]; 1154[label="primQuotInt (Neg vuz180) (Neg Zero)",fontsize=16,color="black",shape="box"];1154 -> 1187[label="",style="solid", color="black", weight=3]; 1155 -> 2055[label="",style="dashed", color="red", weight=0]; 1155[label="gcd0Gcd'0 vuz54 (Neg (Succ vuz5300))",fontsize=16,color="magenta"];1155 -> 2066[label="",style="dashed", color="magenta", weight=3]; 1155 -> 2067[label="",style="dashed", color="magenta", weight=3]; 2058[label="vuz54",fontsize=16,color="green",shape="box"];2059[label="Neg Zero",fontsize=16,color="green",shape="box"];1157[label="Integer vuz30 * Integer (Pos (Succ Zero)) `quot` reduce2D (Integer vuz31 * Integer (Pos (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1157 -> 1190[label="",style="solid", color="black", weight=3]; 1158[label="Integer vuz30 * fromInt (Neg (Succ Zero)) `quot` reduce2D (Integer vuz31 * fromInt (Neg (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="triangle"];1158 -> 1191[label="",style="solid", color="black", weight=3]; 1159 -> 1158[label="",style="dashed", color="red", weight=0]; 1159[label="Integer vuz30 * fromInt (Neg (Succ Zero)) `quot` reduce2D (Integer vuz31 * fromInt (Neg (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="magenta"];1160 -> 1158[label="",style="dashed", color="red", weight=0]; 1160[label="Integer vuz30 * fromInt (Neg (Succ Zero)) `quot` reduce2D (Integer vuz31 * fromInt (Neg (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="magenta"];1161[label="Integer vuz59 `quot` gcd0Gcd' (abs (Integer vuz60)) (abs (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1161 -> 1192[label="",style="solid", color="black", weight=3]; 1162[label="Integer vuz59 `quot` gcd1 (absReal (Integer vuz37) == fromInt (Pos Zero)) (Integer vuz60) (absReal (Integer vuz37))",fontsize=16,color="black",shape="box"];1162 -> 1193[label="",style="solid", color="black", weight=3]; 2010 -> 2014[label="",style="dashed", color="red", weight=0]; 2010[label="signumReal2 (Integer vuz34) (Integer vuz34 == fromInt (Pos Zero))",fontsize=16,color="magenta"];2010 -> 2015[label="",style="dashed", color="magenta", weight=3]; 2012 -> 25[label="",style="dashed", color="red", weight=0]; 2012[label="primMulInt vuz71 vuz1040",fontsize=16,color="magenta"];2012 -> 2016[label="",style="dashed", color="magenta", weight=3]; 2012 -> 2017[label="",style="dashed", color="magenta", weight=3]; 2013 -> 331[label="",style="dashed", color="red", weight=0]; 2013[label="Integer (primMulInt vuz71 vuz1040) == fromInt (Pos Zero)",fontsize=16,color="magenta"];2013 -> 2018[label="",style="dashed", color="magenta", weight=3]; 2011[label="Integer vuz32 `quot` gcd2 vuz108 (Integer vuz109) (Integer vuz32)",fontsize=16,color="burlywood",shape="triangle"];5725[label="vuz108/False",fontsize=10,color="white",style="solid",shape="box"];2011 -> 5725[label="",style="solid", color="burlywood", weight=9]; 5725 -> 2019[label="",style="solid", color="burlywood", weight=3]; 5726[label="vuz108/True",fontsize=10,color="white",style="solid",shape="box"];2011 -> 5726[label="",style="solid", color="burlywood", weight=9]; 5726 -> 2020[label="",style="solid", color="burlywood", weight=3]; 2644 -> 2310[label="",style="dashed", color="red", weight=0]; 2644[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2645 -> 584[label="",style="dashed", color="red", weight=0]; 2645[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2646 -> 2310[label="",style="dashed", color="red", weight=0]; 2646[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2647 -> 584[label="",style="dashed", color="red", weight=0]; 2647[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2648[label="Float (Neg (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2424[label="Integer (Neg (Succ Zero))",fontsize=16,color="green",shape="box"];2649[label="Double (Neg (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2650[label="fromInt (Neg (Succ Zero)) :% fromInt (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];2650 -> 2681[label="",style="dashed", color="green", weight=3]; 2650 -> 2682[label="",style="dashed", color="green", weight=3]; 2060[label="vuz50",fontsize=16,color="green",shape="box"];2061[label="Pos (Succ vuz4900)",fontsize=16,color="green",shape="box"];1174[label="gcd0Gcd'2 (Pos Zero) (vuz50 `rem` Pos Zero)",fontsize=16,color="black",shape="box"];1174 -> 1209[label="",style="solid", color="black", weight=3]; 1175[label="Pos (primDivNatS vuz180 (Succ vuz5000))",fontsize=16,color="green",shape="box"];1175 -> 1210[label="",style="dashed", color="green", weight=3]; 1176[label="error []",fontsize=16,color="black",shape="triangle"];1176 -> 1211[label="",style="solid", color="black", weight=3]; 1177[label="Neg (primDivNatS vuz180 (Succ vuz5000))",fontsize=16,color="green",shape="box"];1177 -> 1212[label="",style="dashed", color="green", weight=3]; 1178 -> 1176[label="",style="dashed", color="red", weight=0]; 1178[label="error []",fontsize=16,color="magenta"];2062[label="vuz50",fontsize=16,color="green",shape="box"];2063[label="Neg (Succ vuz4900)",fontsize=16,color="green",shape="box"];2075[label="gcd0Gcd' vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="black",shape="box"];2075 -> 2078[label="",style="solid", color="black", weight=3]; 2064[label="vuz54",fontsize=16,color="green",shape="box"];2065[label="Pos (Succ vuz5300)",fontsize=16,color="green",shape="box"];1183[label="vuz54",fontsize=16,color="green",shape="box"];1184[label="Neg (primDivNatS vuz180 (Succ vuz5400))",fontsize=16,color="green",shape="box"];1184 -> 1215[label="",style="dashed", color="green", weight=3]; 1185 -> 1176[label="",style="dashed", color="red", weight=0]; 1185[label="error []",fontsize=16,color="magenta"];1186[label="Pos (primDivNatS vuz180 (Succ vuz5400))",fontsize=16,color="green",shape="box"];1186 -> 1216[label="",style="dashed", color="green", weight=3]; 1187 -> 1176[label="",style="dashed", color="red", weight=0]; 1187[label="error []",fontsize=16,color="magenta"];2066[label="vuz54",fontsize=16,color="green",shape="box"];2067[label="Neg (Succ vuz5300)",fontsize=16,color="green",shape="box"];1190 -> 698[label="",style="dashed", color="red", weight=0]; 1190[label="Integer (primMulInt vuz30 (Pos (Succ Zero))) `quot` reduce2D (Integer (primMulInt vuz30 (Pos (Succ Zero)))) (abs (Integer vuz37))",fontsize=16,color="magenta"];1190 -> 1217[label="",style="dashed", color="magenta", weight=3]; 1190 -> 1218[label="",style="dashed", color="magenta", weight=3]; 1191[label="Integer vuz30 * Integer (Neg (Succ Zero)) `quot` reduce2D (Integer vuz31 * Integer (Neg (Succ Zero))) (abs (Integer vuz37))",fontsize=16,color="black",shape="box"];1191 -> 1219[label="",style="solid", color="black", weight=3]; 1192[label="Integer vuz59 `quot` gcd0Gcd'2 (abs (Integer vuz60)) (abs (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1192 -> 1220[label="",style="solid", color="black", weight=3]; 1193[label="Integer vuz59 `quot` gcd1 (absReal2 (Integer vuz37) == fromInt (Pos Zero)) (Integer vuz60) (absReal2 (Integer vuz37))",fontsize=16,color="black",shape="box"];1193 -> 1221[label="",style="solid", color="black", weight=3]; 2015 -> 331[label="",style="dashed", color="red", weight=0]; 2015[label="Integer vuz34 == fromInt (Pos Zero)",fontsize=16,color="magenta"];2015 -> 2021[label="",style="dashed", color="magenta", weight=3]; 2014[label="signumReal2 (Integer vuz34) vuz111",fontsize=16,color="burlywood",shape="triangle"];5727[label="vuz111/False",fontsize=10,color="white",style="solid",shape="box"];2014 -> 5727[label="",style="solid", color="burlywood", weight=9]; 5727 -> 2022[label="",style="solid", color="burlywood", weight=3]; 5728[label="vuz111/True",fontsize=10,color="white",style="solid",shape="box"];2014 -> 5728[label="",style="solid", color="burlywood", weight=9]; 5728 -> 2023[label="",style="solid", color="burlywood", weight=3]; 2016[label="vuz1040",fontsize=16,color="green",shape="box"];2017[label="vuz71",fontsize=16,color="green",shape="box"];2018 -> 25[label="",style="dashed", color="red", weight=0]; 2018[label="primMulInt vuz71 vuz1040",fontsize=16,color="magenta"];2018 -> 2026[label="",style="dashed", color="magenta", weight=3]; 2018 -> 2027[label="",style="dashed", color="magenta", weight=3]; 2019[label="Integer vuz32 `quot` gcd2 False (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="box"];2019 -> 2028[label="",style="solid", color="black", weight=3]; 2020[label="Integer vuz32 `quot` gcd2 True (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="box"];2020 -> 2029[label="",style="solid", color="black", weight=3]; 2681[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5729[label="fromInt :: Int -> Integer",fontsize=10,color="white",style="solid",shape="box"];2681 -> 5729[label="",style="solid", color="blue", weight=9]; 5729 -> 2713[label="",style="solid", color="blue", weight=3]; 5730[label="fromInt :: Int -> Int",fontsize=10,color="white",style="solid",shape="box"];2681 -> 5730[label="",style="solid", color="blue", weight=9]; 5730 -> 2714[label="",style="solid", color="blue", weight=3]; 2682[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5731[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];2682 -> 5731[label="",style="solid", color="blue", weight=9]; 5731 -> 2715[label="",style="solid", color="blue", weight=3]; 5732[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];2682 -> 5732[label="",style="solid", color="blue", weight=9]; 5732 -> 2716[label="",style="solid", color="blue", weight=3]; 1209 -> 2097[label="",style="dashed", color="red", weight=0]; 1209[label="gcd0Gcd'1 (vuz50 `rem` Pos Zero == fromInt (Pos Zero)) (Pos Zero) (vuz50 `rem` Pos Zero)",fontsize=16,color="magenta"];1209 -> 2098[label="",style="dashed", color="magenta", weight=3]; 1209 -> 2099[label="",style="dashed", color="magenta", weight=3]; 1209 -> 2100[label="",style="dashed", color="magenta", weight=3]; 1210[label="primDivNatS vuz180 (Succ vuz5000)",fontsize=16,color="burlywood",shape="triangle"];5733[label="vuz180/Succ vuz1800",fontsize=10,color="white",style="solid",shape="box"];1210 -> 5733[label="",style="solid", color="burlywood", weight=9]; 5733 -> 1240[label="",style="solid", color="burlywood", weight=3]; 5734[label="vuz180/Zero",fontsize=10,color="white",style="solid",shape="box"];1210 -> 5734[label="",style="solid", color="burlywood", weight=9]; 5734 -> 1241[label="",style="solid", color="burlywood", weight=3]; 1211[label="error []",fontsize=16,color="red",shape="box"];1212 -> 1210[label="",style="dashed", color="red", weight=0]; 1212[label="primDivNatS vuz180 (Succ vuz5000)",fontsize=16,color="magenta"];1212 -> 1242[label="",style="dashed", color="magenta", weight=3]; 2078[label="gcd0Gcd'2 vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="black",shape="box"];2078 -> 2094[label="",style="solid", color="black", weight=3]; 1215 -> 1210[label="",style="dashed", color="red", weight=0]; 1215[label="primDivNatS vuz180 (Succ vuz5400)",fontsize=16,color="magenta"];1215 -> 1246[label="",style="dashed", color="magenta", weight=3]; 1215 -> 1247[label="",style="dashed", color="magenta", weight=3]; 1216 -> 1210[label="",style="dashed", color="red", weight=0]; 1216[label="primDivNatS vuz180 (Succ vuz5400)",fontsize=16,color="magenta"];1216 -> 1248[label="",style="dashed", color="magenta", weight=3]; 1216 -> 1249[label="",style="dashed", color="magenta", weight=3]; 1217 -> 25[label="",style="dashed", color="red", weight=0]; 1217[label="primMulInt vuz30 (Pos (Succ Zero))",fontsize=16,color="magenta"];1217 -> 1250[label="",style="dashed", color="magenta", weight=3]; 1217 -> 1251[label="",style="dashed", color="magenta", weight=3]; 1218 -> 25[label="",style="dashed", color="red", weight=0]; 1218[label="primMulInt vuz30 (Pos (Succ Zero))",fontsize=16,color="magenta"];1218 -> 1252[label="",style="dashed", color="magenta", weight=3]; 1218 -> 1253[label="",style="dashed", color="magenta", weight=3]; 1219 -> 698[label="",style="dashed", color="red", weight=0]; 1219[label="Integer (primMulInt vuz30 (Neg (Succ Zero))) `quot` reduce2D (Integer (primMulInt vuz30 (Neg (Succ Zero)))) (abs (Integer vuz37))",fontsize=16,color="magenta"];1219 -> 1254[label="",style="dashed", color="magenta", weight=3]; 1219 -> 1255[label="",style="dashed", color="magenta", weight=3]; 1220[label="Integer vuz59 `quot` gcd0Gcd'1 (abs (abs (Integer vuz37)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (abs (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1220 -> 1256[label="",style="solid", color="black", weight=3]; 1221[label="Integer vuz59 `quot` gcd1 (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero)) == fromInt (Pos Zero)) (Integer vuz60) (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];1221 -> 1257[label="",style="solid", color="black", weight=3]; 2021[label="vuz34",fontsize=16,color="green",shape="box"];2022[label="signumReal2 (Integer vuz34) False",fontsize=16,color="black",shape="box"];2022 -> 2030[label="",style="solid", color="black", weight=3]; 2023[label="signumReal2 (Integer vuz34) True",fontsize=16,color="black",shape="box"];2023 -> 2031[label="",style="solid", color="black", weight=3]; 2026[label="vuz1040",fontsize=16,color="green",shape="box"];2027[label="vuz71",fontsize=16,color="green",shape="box"];2028[label="Integer vuz32 `quot` gcd0 (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="triangle"];2028 -> 2041[label="",style="solid", color="black", weight=3]; 2029 -> 2042[label="",style="dashed", color="red", weight=0]; 2029[label="Integer vuz32 `quot` gcd1 (Integer vuz32 == fromInt (Pos Zero)) (Integer vuz109) (Integer vuz32)",fontsize=16,color="magenta"];2029 -> 2043[label="",style="dashed", color="magenta", weight=3]; 2713 -> 2387[label="",style="dashed", color="red", weight=0]; 2713[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2714 -> 711[label="",style="dashed", color="red", weight=0]; 2714[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2715 -> 2310[label="",style="dashed", color="red", weight=0]; 2715[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2716 -> 584[label="",style="dashed", color="red", weight=0]; 2716[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2098 -> 1690[label="",style="dashed", color="red", weight=0]; 2098[label="vuz50 `rem` Pos Zero == fromInt (Pos Zero)",fontsize=16,color="magenta"];2098 -> 2102[label="",style="dashed", color="magenta", weight=3]; 2098 -> 2103[label="",style="dashed", color="magenta", weight=3]; 2099[label="vuz50",fontsize=16,color="green",shape="box"];2100[label="Pos Zero",fontsize=16,color="green",shape="box"];2097[label="gcd0Gcd'1 vuz122 vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="burlywood",shape="triangle"];5735[label="vuz122/False",fontsize=10,color="white",style="solid",shape="box"];2097 -> 5735[label="",style="solid", color="burlywood", weight=9]; 5735 -> 2104[label="",style="solid", color="burlywood", weight=3]; 5736[label="vuz122/True",fontsize=10,color="white",style="solid",shape="box"];2097 -> 5736[label="",style="solid", color="burlywood", weight=9]; 5736 -> 2105[label="",style="solid", color="burlywood", weight=3]; 1240[label="primDivNatS (Succ vuz1800) (Succ vuz5000)",fontsize=16,color="black",shape="box"];1240 -> 1272[label="",style="solid", color="black", weight=3]; 1241[label="primDivNatS Zero (Succ vuz5000)",fontsize=16,color="black",shape="box"];1241 -> 1273[label="",style="solid", color="black", weight=3]; 1242[label="vuz5000",fontsize=16,color="green",shape="box"];2094 -> 2097[label="",style="dashed", color="red", weight=0]; 2094[label="gcd0Gcd'1 (vuz90 `rem` vuz116 == fromInt (Pos Zero)) vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="magenta"];2094 -> 2101[label="",style="dashed", color="magenta", weight=3]; 1246[label="vuz5400",fontsize=16,color="green",shape="box"];1247[label="vuz180",fontsize=16,color="green",shape="box"];1248[label="vuz5400",fontsize=16,color="green",shape="box"];1249[label="vuz180",fontsize=16,color="green",shape="box"];1250[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];1251[label="vuz30",fontsize=16,color="green",shape="box"];1252[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];1253[label="vuz30",fontsize=16,color="green",shape="box"];1254 -> 25[label="",style="dashed", color="red", weight=0]; 1254[label="primMulInt vuz30 (Neg (Succ Zero))",fontsize=16,color="magenta"];1254 -> 1277[label="",style="dashed", color="magenta", weight=3]; 1254 -> 1278[label="",style="dashed", color="magenta", weight=3]; 1255 -> 25[label="",style="dashed", color="red", weight=0]; 1255[label="primMulInt vuz30 (Neg (Succ Zero))",fontsize=16,color="magenta"];1255 -> 1279[label="",style="dashed", color="magenta", weight=3]; 1255 -> 1280[label="",style="dashed", color="magenta", weight=3]; 1256[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal (abs (Integer vuz37)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1256 -> 1281[label="",style="solid", color="black", weight=3]; 1257[label="Integer vuz59 `quot` gcd1 (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT) == fromInt (Pos Zero)) (Integer vuz60) (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT))",fontsize=16,color="black",shape="box"];1257 -> 1282[label="",style="solid", color="black", weight=3]; 2030[label="signumReal1 (Integer vuz34) (Integer vuz34 > fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];2030 -> 2044[label="",style="solid", color="black", weight=3]; 2031[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];2031 -> 2045[label="",style="solid", color="black", weight=3]; 2041[label="Integer vuz32 `quot` gcd0Gcd' (abs (Integer vuz109)) (abs (Integer vuz32))",fontsize=16,color="black",shape="box"];2041 -> 2046[label="",style="solid", color="black", weight=3]; 2043 -> 331[label="",style="dashed", color="red", weight=0]; 2043[label="Integer vuz32 == fromInt (Pos Zero)",fontsize=16,color="magenta"];2043 -> 2047[label="",style="dashed", color="magenta", weight=3]; 2042[label="Integer vuz32 `quot` gcd1 vuz115 (Integer vuz109) (Integer vuz32)",fontsize=16,color="burlywood",shape="triangle"];5737[label="vuz115/False",fontsize=10,color="white",style="solid",shape="box"];2042 -> 5737[label="",style="solid", color="burlywood", weight=9]; 5737 -> 2048[label="",style="solid", color="burlywood", weight=3]; 5738[label="vuz115/True",fontsize=10,color="white",style="solid",shape="box"];2042 -> 5738[label="",style="solid", color="burlywood", weight=9]; 5738 -> 2049[label="",style="solid", color="burlywood", weight=3]; 2102 -> 338[label="",style="dashed", color="red", weight=0]; 2102[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2103[label="vuz50 `rem` Pos Zero",fontsize=16,color="black",shape="box"];2103 -> 2119[label="",style="solid", color="black", weight=3]; 2104[label="gcd0Gcd'1 False vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="black",shape="box"];2104 -> 2120[label="",style="solid", color="black", weight=3]; 2105[label="gcd0Gcd'1 True vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="black",shape="box"];2105 -> 2121[label="",style="solid", color="black", weight=3]; 1272[label="primDivNatS0 vuz1800 vuz5000 (primGEqNatS vuz1800 vuz5000)",fontsize=16,color="burlywood",shape="box"];5739[label="vuz1800/Succ vuz18000",fontsize=10,color="white",style="solid",shape="box"];1272 -> 5739[label="",style="solid", color="burlywood", weight=9]; 5739 -> 1298[label="",style="solid", color="burlywood", weight=3]; 5740[label="vuz1800/Zero",fontsize=10,color="white",style="solid",shape="box"];1272 -> 5740[label="",style="solid", color="burlywood", weight=9]; 5740 -> 1299[label="",style="solid", color="burlywood", weight=3]; 1273[label="Zero",fontsize=16,color="green",shape="box"];2101 -> 1690[label="",style="dashed", color="red", weight=0]; 2101[label="vuz90 `rem` vuz116 == fromInt (Pos Zero)",fontsize=16,color="magenta"];2101 -> 2106[label="",style="dashed", color="magenta", weight=3]; 2101 -> 2107[label="",style="dashed", color="magenta", weight=3]; 1277[label="Neg (Succ Zero)",fontsize=16,color="green",shape="box"];1278[label="vuz30",fontsize=16,color="green",shape="box"];1279[label="Neg (Succ Zero)",fontsize=16,color="green",shape="box"];1280[label="vuz30",fontsize=16,color="green",shape="box"];1281[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal2 (abs (Integer vuz37)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal2 (abs (Integer vuz37)))",fontsize=16,color="black",shape="box"];1281 -> 1302[label="",style="solid", color="black", weight=3]; 1282 -> 1303[label="",style="dashed", color="red", weight=0]; 1282[label="Integer vuz59 `quot` gcd1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="magenta"];1282 -> 1304[label="",style="dashed", color="magenta", weight=3]; 2044 -> 2076[label="",style="dashed", color="red", weight=0]; 2044[label="signumReal1 (Integer vuz34) (compare (Integer vuz34) (fromInt (Pos Zero)) == GT)",fontsize=16,color="magenta"];2044 -> 2077[label="",style="dashed", color="magenta", weight=3]; 2045[label="Integer (Pos Zero)",fontsize=16,color="green",shape="box"];2046[label="Integer vuz32 `quot` gcd0Gcd'2 (abs (Integer vuz109)) (abs (Integer vuz32))",fontsize=16,color="black",shape="box"];2046 -> 2079[label="",style="solid", color="black", weight=3]; 2047[label="vuz32",fontsize=16,color="green",shape="box"];2048[label="Integer vuz32 `quot` gcd1 False (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="box"];2048 -> 2080[label="",style="solid", color="black", weight=3]; 2049[label="Integer vuz32 `quot` gcd1 True (Integer vuz109) (Integer vuz32)",fontsize=16,color="black",shape="box"];2049 -> 2081[label="",style="solid", color="black", weight=3]; 2119[label="primRemInt vuz50 (Pos Zero)",fontsize=16,color="burlywood",shape="box"];5741[label="vuz50/Pos vuz500",fontsize=10,color="white",style="solid",shape="box"];2119 -> 5741[label="",style="solid", color="burlywood", weight=9]; 5741 -> 2143[label="",style="solid", color="burlywood", weight=3]; 5742[label="vuz50/Neg vuz500",fontsize=10,color="white",style="solid",shape="box"];2119 -> 5742[label="",style="solid", color="burlywood", weight=9]; 5742 -> 2144[label="",style="solid", color="burlywood", weight=3]; 2120 -> 2055[label="",style="dashed", color="red", weight=0]; 2120[label="gcd0Gcd'0 vuz116 (vuz90 `rem` vuz116)",fontsize=16,color="magenta"];2120 -> 2145[label="",style="dashed", color="magenta", weight=3]; 2120 -> 2146[label="",style="dashed", color="magenta", weight=3]; 2121[label="vuz116",fontsize=16,color="green",shape="box"];1298[label="primDivNatS0 (Succ vuz18000) vuz5000 (primGEqNatS (Succ vuz18000) vuz5000)",fontsize=16,color="burlywood",shape="box"];5743[label="vuz5000/Succ vuz50000",fontsize=10,color="white",style="solid",shape="box"];1298 -> 5743[label="",style="solid", color="burlywood", weight=9]; 5743 -> 1321[label="",style="solid", color="burlywood", weight=3]; 5744[label="vuz5000/Zero",fontsize=10,color="white",style="solid",shape="box"];1298 -> 5744[label="",style="solid", color="burlywood", weight=9]; 5744 -> 1322[label="",style="solid", color="burlywood", weight=3]; 1299[label="primDivNatS0 Zero vuz5000 (primGEqNatS Zero vuz5000)",fontsize=16,color="burlywood",shape="box"];5745[label="vuz5000/Succ vuz50000",fontsize=10,color="white",style="solid",shape="box"];1299 -> 5745[label="",style="solid", color="burlywood", weight=9]; 5745 -> 1323[label="",style="solid", color="burlywood", weight=3]; 5746[label="vuz5000/Zero",fontsize=10,color="white",style="solid",shape="box"];1299 -> 5746[label="",style="solid", color="burlywood", weight=9]; 5746 -> 1324[label="",style="solid", color="burlywood", weight=3]; 2106 -> 338[label="",style="dashed", color="red", weight=0]; 2106[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2107[label="vuz90 `rem` vuz116",fontsize=16,color="black",shape="triangle"];2107 -> 2122[label="",style="solid", color="black", weight=3]; 1302[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (abs (Integer vuz37)) (abs (Integer vuz37) >= fromInt (Pos Zero)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (abs (Integer vuz37)) (abs (Integer vuz37) >= fromInt (Pos Zero)))",fontsize=16,color="black",shape="box"];1302 -> 1328[label="",style="solid", color="black", weight=3]; 1304 -> 151[label="",style="dashed", color="red", weight=0]; 1304[label="absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)",fontsize=16,color="magenta"];1304 -> 1329[label="",style="dashed", color="magenta", weight=3]; 1304 -> 1330[label="",style="dashed", color="magenta", weight=3]; 1303[label="Integer vuz59 `quot` gcd1 vuz82 (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="burlywood",shape="triangle"];5747[label="vuz82/False",fontsize=10,color="white",style="solid",shape="box"];1303 -> 5747[label="",style="solid", color="burlywood", weight=9]; 5747 -> 1331[label="",style="solid", color="burlywood", weight=3]; 5748[label="vuz82/True",fontsize=10,color="white",style="solid",shape="box"];1303 -> 5748[label="",style="solid", color="burlywood", weight=9]; 5748 -> 1332[label="",style="solid", color="burlywood", weight=3]; 2077 -> 2031[label="",style="dashed", color="red", weight=0]; 2077[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2076[label="signumReal1 (Integer vuz34) (compare (Integer vuz34) vuz117 == GT)",fontsize=16,color="burlywood",shape="triangle"];5749[label="vuz117/Integer vuz1170",fontsize=10,color="white",style="solid",shape="box"];2076 -> 5749[label="",style="solid", color="burlywood", weight=9]; 5749 -> 2082[label="",style="solid", color="burlywood", weight=3]; 2079 -> 2095[label="",style="dashed", color="red", weight=0]; 2079[label="Integer vuz32 `quot` gcd0Gcd'1 (abs (Integer vuz32) == fromInt (Pos Zero)) (abs (Integer vuz109)) (abs (Integer vuz32))",fontsize=16,color="magenta"];2079 -> 2096[label="",style="dashed", color="magenta", weight=3]; 2080 -> 2028[label="",style="dashed", color="red", weight=0]; 2080[label="Integer vuz32 `quot` gcd0 (Integer vuz109) (Integer vuz32)",fontsize=16,color="magenta"];2081 -> 1360[label="",style="dashed", color="red", weight=0]; 2081[label="Integer vuz32 `quot` error []",fontsize=16,color="magenta"];2081 -> 2108[label="",style="dashed", color="magenta", weight=3]; 2143[label="primRemInt (Pos vuz500) (Pos Zero)",fontsize=16,color="black",shape="box"];2143 -> 2173[label="",style="solid", color="black", weight=3]; 2144[label="primRemInt (Neg vuz500) (Pos Zero)",fontsize=16,color="black",shape="box"];2144 -> 2174[label="",style="solid", color="black", weight=3]; 2145[label="vuz116",fontsize=16,color="green",shape="box"];2146 -> 2107[label="",style="dashed", color="red", weight=0]; 2146[label="vuz90 `rem` vuz116",fontsize=16,color="magenta"];1321[label="primDivNatS0 (Succ vuz18000) (Succ vuz50000) (primGEqNatS (Succ vuz18000) (Succ vuz50000))",fontsize=16,color="black",shape="box"];1321 -> 1350[label="",style="solid", color="black", weight=3]; 1322[label="primDivNatS0 (Succ vuz18000) Zero (primGEqNatS (Succ vuz18000) Zero)",fontsize=16,color="black",shape="box"];1322 -> 1351[label="",style="solid", color="black", weight=3]; 1323[label="primDivNatS0 Zero (Succ vuz50000) (primGEqNatS Zero (Succ vuz50000))",fontsize=16,color="black",shape="box"];1323 -> 1352[label="",style="solid", color="black", weight=3]; 1324[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1324 -> 1353[label="",style="solid", color="black", weight=3]; 2122[label="primRemInt vuz90 vuz116",fontsize=16,color="burlywood",shape="triangle"];5750[label="vuz90/Pos vuz900",fontsize=10,color="white",style="solid",shape="box"];2122 -> 5750[label="",style="solid", color="burlywood", weight=9]; 5750 -> 2147[label="",style="solid", color="burlywood", weight=3]; 5751[label="vuz90/Neg vuz900",fontsize=10,color="white",style="solid",shape="box"];2122 -> 5751[label="",style="solid", color="burlywood", weight=9]; 5751 -> 2148[label="",style="solid", color="burlywood", weight=3]; 1328[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (abs (Integer vuz37)) (compare (abs (Integer vuz37)) (fromInt (Pos Zero)) /= LT) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (abs (Integer vuz37)) (compare (abs (Integer vuz37)) (fromInt (Pos Zero)) /= LT))",fontsize=16,color="black",shape="box"];1328 -> 1358[label="",style="solid", color="black", weight=3]; 1329[label="vuz37",fontsize=16,color="green",shape="box"];1330[label="vuz37",fontsize=16,color="green",shape="box"];1331[label="Integer vuz59 `quot` gcd1 False (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1331 -> 1359[label="",style="solid", color="black", weight=3]; 1332[label="Integer vuz59 `quot` gcd1 True (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1332 -> 1360[label="",style="solid", color="black", weight=3]; 2082[label="signumReal1 (Integer vuz34) (compare (Integer vuz34) (Integer vuz1170) == GT)",fontsize=16,color="black",shape="box"];2082 -> 2109[label="",style="solid", color="black", weight=3]; 2096 -> 2031[label="",style="dashed", color="red", weight=0]; 2096[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2095[label="Integer vuz32 `quot` gcd0Gcd'1 (abs (Integer vuz32) == vuz121) (abs (Integer vuz109)) (abs (Integer vuz32))",fontsize=16,color="black",shape="triangle"];2095 -> 2110[label="",style="solid", color="black", weight=3]; 2108[label="vuz32",fontsize=16,color="green",shape="box"];1360[label="Integer vuz59 `quot` error []",fontsize=16,color="black",shape="triangle"];1360 -> 1440[label="",style="solid", color="black", weight=3]; 2173 -> 1176[label="",style="dashed", color="red", weight=0]; 2173[label="error []",fontsize=16,color="magenta"];2174 -> 1176[label="",style="dashed", color="red", weight=0]; 2174[label="error []",fontsize=16,color="magenta"];1350 -> 3385[label="",style="dashed", color="red", weight=0]; 1350[label="primDivNatS0 (Succ vuz18000) (Succ vuz50000) (primGEqNatS vuz18000 vuz50000)",fontsize=16,color="magenta"];1350 -> 3386[label="",style="dashed", color="magenta", weight=3]; 1350 -> 3387[label="",style="dashed", color="magenta", weight=3]; 1350 -> 3388[label="",style="dashed", color="magenta", weight=3]; 1350 -> 3389[label="",style="dashed", color="magenta", weight=3]; 1351[label="primDivNatS0 (Succ vuz18000) Zero True",fontsize=16,color="black",shape="box"];1351 -> 1409[label="",style="solid", color="black", weight=3]; 1352[label="primDivNatS0 Zero (Succ vuz50000) False",fontsize=16,color="black",shape="box"];1352 -> 1410[label="",style="solid", color="black", weight=3]; 1353[label="primDivNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];1353 -> 1411[label="",style="solid", color="black", weight=3]; 2147[label="primRemInt (Pos vuz900) vuz116",fontsize=16,color="burlywood",shape="box"];5752[label="vuz116/Pos vuz1160",fontsize=10,color="white",style="solid",shape="box"];2147 -> 5752[label="",style="solid", color="burlywood", weight=9]; 5752 -> 2175[label="",style="solid", color="burlywood", weight=3]; 5753[label="vuz116/Neg vuz1160",fontsize=10,color="white",style="solid",shape="box"];2147 -> 5753[label="",style="solid", color="burlywood", weight=9]; 5753 -> 2176[label="",style="solid", color="burlywood", weight=3]; 2148[label="primRemInt (Neg vuz900) vuz116",fontsize=16,color="burlywood",shape="box"];5754[label="vuz116/Pos vuz1160",fontsize=10,color="white",style="solid",shape="box"];2148 -> 5754[label="",style="solid", color="burlywood", weight=9]; 5754 -> 2177[label="",style="solid", color="burlywood", weight=3]; 5755[label="vuz116/Neg vuz1160",fontsize=10,color="white",style="solid",shape="box"];2148 -> 5755[label="",style="solid", color="burlywood", weight=9]; 5755 -> 2178[label="",style="solid", color="burlywood", weight=3]; 1358[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (abs (Integer vuz37)) (not (compare (abs (Integer vuz37)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (abs (Integer vuz37)) (not (compare (abs (Integer vuz37)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1358 -> 1438[label="",style="solid", color="black", weight=3]; 1359[label="Integer vuz59 `quot` gcd0 (Integer vuz60) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1359 -> 1439[label="",style="solid", color="black", weight=3]; 2109[label="signumReal1 (Integer vuz34) (primCmpInt vuz34 vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5756[label="vuz34/Pos vuz340",fontsize=10,color="white",style="solid",shape="box"];2109 -> 5756[label="",style="solid", color="burlywood", weight=9]; 5756 -> 2123[label="",style="solid", color="burlywood", weight=3]; 5757[label="vuz34/Neg vuz340",fontsize=10,color="white",style="solid",shape="box"];2109 -> 5757[label="",style="solid", color="burlywood", weight=9]; 5757 -> 2124[label="",style="solid", color="burlywood", weight=3]; 2110[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal (Integer vuz32) == vuz121) (abs (Integer vuz109)) (absReal (Integer vuz32))",fontsize=16,color="black",shape="box"];2110 -> 2125[label="",style="solid", color="black", weight=3]; 1440[label="error []",fontsize=16,color="red",shape="box"];3386[label="vuz50000",fontsize=16,color="green",shape="box"];3387[label="vuz18000",fontsize=16,color="green",shape="box"];3388[label="vuz18000",fontsize=16,color="green",shape="box"];3389[label="vuz50000",fontsize=16,color="green",shape="box"];3385[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS vuz177 vuz178)",fontsize=16,color="burlywood",shape="triangle"];5758[label="vuz177/Succ vuz1770",fontsize=10,color="white",style="solid",shape="box"];3385 -> 5758[label="",style="solid", color="burlywood", weight=9]; 5758 -> 3426[label="",style="solid", color="burlywood", weight=3]; 5759[label="vuz177/Zero",fontsize=10,color="white",style="solid",shape="box"];3385 -> 5759[label="",style="solid", color="burlywood", weight=9]; 5759 -> 3427[label="",style="solid", color="burlywood", weight=3]; 1409[label="Succ (primDivNatS (primMinusNatS (Succ vuz18000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];1409 -> 1468[label="",style="dashed", color="green", weight=3]; 1410[label="Zero",fontsize=16,color="green",shape="box"];1411[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];1411 -> 1469[label="",style="dashed", color="green", weight=3]; 2175[label="primRemInt (Pos vuz900) (Pos vuz1160)",fontsize=16,color="burlywood",shape="box"];5760[label="vuz1160/Succ vuz11600",fontsize=10,color="white",style="solid",shape="box"];2175 -> 5760[label="",style="solid", color="burlywood", weight=9]; 5760 -> 2190[label="",style="solid", color="burlywood", weight=3]; 5761[label="vuz1160/Zero",fontsize=10,color="white",style="solid",shape="box"];2175 -> 5761[label="",style="solid", color="burlywood", weight=9]; 5761 -> 2191[label="",style="solid", color="burlywood", weight=3]; 2176[label="primRemInt (Pos vuz900) (Neg vuz1160)",fontsize=16,color="burlywood",shape="box"];5762[label="vuz1160/Succ vuz11600",fontsize=10,color="white",style="solid",shape="box"];2176 -> 5762[label="",style="solid", color="burlywood", weight=9]; 5762 -> 2192[label="",style="solid", color="burlywood", weight=3]; 5763[label="vuz1160/Zero",fontsize=10,color="white",style="solid",shape="box"];2176 -> 5763[label="",style="solid", color="burlywood", weight=9]; 5763 -> 2193[label="",style="solid", color="burlywood", weight=3]; 2177[label="primRemInt (Neg vuz900) (Pos vuz1160)",fontsize=16,color="burlywood",shape="box"];5764[label="vuz1160/Succ vuz11600",fontsize=10,color="white",style="solid",shape="box"];2177 -> 5764[label="",style="solid", color="burlywood", weight=9]; 5764 -> 2194[label="",style="solid", color="burlywood", weight=3]; 5765[label="vuz1160/Zero",fontsize=10,color="white",style="solid",shape="box"];2177 -> 5765[label="",style="solid", color="burlywood", weight=9]; 5765 -> 2195[label="",style="solid", color="burlywood", weight=3]; 2178[label="primRemInt (Neg vuz900) (Neg vuz1160)",fontsize=16,color="burlywood",shape="box"];5766[label="vuz1160/Succ vuz11600",fontsize=10,color="white",style="solid",shape="box"];2178 -> 5766[label="",style="solid", color="burlywood", weight=9]; 5766 -> 2196[label="",style="solid", color="burlywood", weight=3]; 5767[label="vuz1160/Zero",fontsize=10,color="white",style="solid",shape="box"];2178 -> 5767[label="",style="solid", color="burlywood", weight=9]; 5767 -> 2197[label="",style="solid", color="burlywood", weight=3]; 1438[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal (Integer vuz37)) (not (compare (absReal (Integer vuz37)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal (Integer vuz37)) (not (compare (absReal (Integer vuz37)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1438 -> 1499[label="",style="solid", color="black", weight=3]; 1439[label="Integer vuz59 `quot` gcd0Gcd' (abs (Integer vuz60)) (abs (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1439 -> 1500[label="",style="solid", color="black", weight=3]; 2123[label="signumReal1 (Integer (Pos vuz340)) (primCmpInt (Pos vuz340) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5768[label="vuz340/Succ vuz3400",fontsize=10,color="white",style="solid",shape="box"];2123 -> 5768[label="",style="solid", color="burlywood", weight=9]; 5768 -> 2149[label="",style="solid", color="burlywood", weight=3]; 5769[label="vuz340/Zero",fontsize=10,color="white",style="solid",shape="box"];2123 -> 5769[label="",style="solid", color="burlywood", weight=9]; 5769 -> 2150[label="",style="solid", color="burlywood", weight=3]; 2124[label="signumReal1 (Integer (Neg vuz340)) (primCmpInt (Neg vuz340) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5770[label="vuz340/Succ vuz3400",fontsize=10,color="white",style="solid",shape="box"];2124 -> 5770[label="",style="solid", color="burlywood", weight=9]; 5770 -> 2151[label="",style="solid", color="burlywood", weight=3]; 5771[label="vuz340/Zero",fontsize=10,color="white",style="solid",shape="box"];2124 -> 5771[label="",style="solid", color="burlywood", weight=9]; 5771 -> 2152[label="",style="solid", color="burlywood", weight=3]; 2125[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal2 (Integer vuz32) == vuz121) (abs (Integer vuz109)) (absReal2 (Integer vuz32))",fontsize=16,color="black",shape="box"];2125 -> 2153[label="",style="solid", color="black", weight=3]; 3426[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS (Succ vuz1770) vuz178)",fontsize=16,color="burlywood",shape="box"];5772[label="vuz178/Succ vuz1780",fontsize=10,color="white",style="solid",shape="box"];3426 -> 5772[label="",style="solid", color="burlywood", weight=9]; 5772 -> 3455[label="",style="solid", color="burlywood", weight=3]; 5773[label="vuz178/Zero",fontsize=10,color="white",style="solid",shape="box"];3426 -> 5773[label="",style="solid", color="burlywood", weight=9]; 5773 -> 3456[label="",style="solid", color="burlywood", weight=3]; 3427[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS Zero vuz178)",fontsize=16,color="burlywood",shape="box"];5774[label="vuz178/Succ vuz1780",fontsize=10,color="white",style="solid",shape="box"];3427 -> 5774[label="",style="solid", color="burlywood", weight=9]; 5774 -> 3457[label="",style="solid", color="burlywood", weight=3]; 5775[label="vuz178/Zero",fontsize=10,color="white",style="solid",shape="box"];3427 -> 5775[label="",style="solid", color="burlywood", weight=9]; 5775 -> 3458[label="",style="solid", color="burlywood", weight=3]; 1468 -> 1210[label="",style="dashed", color="red", weight=0]; 1468[label="primDivNatS (primMinusNatS (Succ vuz18000) Zero) (Succ Zero)",fontsize=16,color="magenta"];1468 -> 1555[label="",style="dashed", color="magenta", weight=3]; 1468 -> 1556[label="",style="dashed", color="magenta", weight=3]; 1469 -> 1210[label="",style="dashed", color="red", weight=0]; 1469[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];1469 -> 1557[label="",style="dashed", color="magenta", weight=3]; 1469 -> 1558[label="",style="dashed", color="magenta", weight=3]; 2190[label="primRemInt (Pos vuz900) (Pos (Succ vuz11600))",fontsize=16,color="black",shape="box"];2190 -> 2244[label="",style="solid", color="black", weight=3]; 2191[label="primRemInt (Pos vuz900) (Pos Zero)",fontsize=16,color="black",shape="box"];2191 -> 2245[label="",style="solid", color="black", weight=3]; 2192[label="primRemInt (Pos vuz900) (Neg (Succ vuz11600))",fontsize=16,color="black",shape="box"];2192 -> 2246[label="",style="solid", color="black", weight=3]; 2193[label="primRemInt (Pos vuz900) (Neg Zero)",fontsize=16,color="black",shape="box"];2193 -> 2247[label="",style="solid", color="black", weight=3]; 2194[label="primRemInt (Neg vuz900) (Pos (Succ vuz11600))",fontsize=16,color="black",shape="box"];2194 -> 2248[label="",style="solid", color="black", weight=3]; 2195[label="primRemInt (Neg vuz900) (Pos Zero)",fontsize=16,color="black",shape="box"];2195 -> 2249[label="",style="solid", color="black", weight=3]; 2196[label="primRemInt (Neg vuz900) (Neg (Succ vuz11600))",fontsize=16,color="black",shape="box"];2196 -> 2250[label="",style="solid", color="black", weight=3]; 2197[label="primRemInt (Neg vuz900) (Neg Zero)",fontsize=16,color="black",shape="box"];2197 -> 2251[label="",style="solid", color="black", weight=3]; 1499[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal2 (Integer vuz37)) (not (compare (absReal2 (Integer vuz37)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal2 (Integer vuz37)) (not (compare (absReal2 (Integer vuz37)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1499 -> 1563[label="",style="solid", color="black", weight=3]; 1500[label="Integer vuz59 `quot` gcd0Gcd'2 (abs (Integer vuz60)) (abs (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1500 -> 1564[label="",style="solid", color="black", weight=3]; 2149[label="signumReal1 (Integer (Pos (Succ vuz3400))) (primCmpInt (Pos (Succ vuz3400)) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5776[label="vuz1170/Pos vuz11700",fontsize=10,color="white",style="solid",shape="box"];2149 -> 5776[label="",style="solid", color="burlywood", weight=9]; 5776 -> 2179[label="",style="solid", color="burlywood", weight=3]; 5777[label="vuz1170/Neg vuz11700",fontsize=10,color="white",style="solid",shape="box"];2149 -> 5777[label="",style="solid", color="burlywood", weight=9]; 5777 -> 2180[label="",style="solid", color="burlywood", weight=3]; 2150[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5778[label="vuz1170/Pos vuz11700",fontsize=10,color="white",style="solid",shape="box"];2150 -> 5778[label="",style="solid", color="burlywood", weight=9]; 5778 -> 2181[label="",style="solid", color="burlywood", weight=3]; 5779[label="vuz1170/Neg vuz11700",fontsize=10,color="white",style="solid",shape="box"];2150 -> 5779[label="",style="solid", color="burlywood", weight=9]; 5779 -> 2182[label="",style="solid", color="burlywood", weight=3]; 2151[label="signumReal1 (Integer (Neg (Succ vuz3400))) (primCmpInt (Neg (Succ vuz3400)) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5780[label="vuz1170/Pos vuz11700",fontsize=10,color="white",style="solid",shape="box"];2151 -> 5780[label="",style="solid", color="burlywood", weight=9]; 5780 -> 2183[label="",style="solid", color="burlywood", weight=3]; 5781[label="vuz1170/Neg vuz11700",fontsize=10,color="white",style="solid",shape="box"];2151 -> 5781[label="",style="solid", color="burlywood", weight=9]; 5781 -> 2184[label="",style="solid", color="burlywood", weight=3]; 2152[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) vuz1170 == GT)",fontsize=16,color="burlywood",shape="box"];5782[label="vuz1170/Pos vuz11700",fontsize=10,color="white",style="solid",shape="box"];2152 -> 5782[label="",style="solid", color="burlywood", weight=9]; 5782 -> 2185[label="",style="solid", color="burlywood", weight=3]; 5783[label="vuz1170/Neg vuz11700",fontsize=10,color="white",style="solid",shape="box"];2152 -> 5783[label="",style="solid", color="burlywood", weight=9]; 5783 -> 2186[label="",style="solid", color="burlywood", weight=3]; 2153 -> 2187[label="",style="dashed", color="red", weight=0]; 2153[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal1 (Integer vuz32) (Integer vuz32 >= fromInt (Pos Zero)) == vuz121) (abs (Integer vuz109)) (absReal1 (Integer vuz32) (Integer vuz32 >= fromInt (Pos Zero)))",fontsize=16,color="magenta"];2153 -> 2188[label="",style="dashed", color="magenta", weight=3]; 2153 -> 2189[label="",style="dashed", color="magenta", weight=3]; 3455[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS (Succ vuz1770) (Succ vuz1780))",fontsize=16,color="black",shape="box"];3455 -> 3507[label="",style="solid", color="black", weight=3]; 3456[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS (Succ vuz1770) Zero)",fontsize=16,color="black",shape="box"];3456 -> 3508[label="",style="solid", color="black", weight=3]; 3457[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS Zero (Succ vuz1780))",fontsize=16,color="black",shape="box"];3457 -> 3509[label="",style="solid", color="black", weight=3]; 3458[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];3458 -> 3510[label="",style="solid", color="black", weight=3]; 1555[label="Zero",fontsize=16,color="green",shape="box"];1556[label="primMinusNatS (Succ vuz18000) Zero",fontsize=16,color="black",shape="triangle"];1556 -> 1710[label="",style="solid", color="black", weight=3]; 1557[label="Zero",fontsize=16,color="green",shape="box"];1558[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];1558 -> 1711[label="",style="solid", color="black", weight=3]; 2244[label="Pos (primModNatS vuz900 (Succ vuz11600))",fontsize=16,color="green",shape="box"];2244 -> 2304[label="",style="dashed", color="green", weight=3]; 2245 -> 1176[label="",style="dashed", color="red", weight=0]; 2245[label="error []",fontsize=16,color="magenta"];2246[label="Pos (primModNatS vuz900 (Succ vuz11600))",fontsize=16,color="green",shape="box"];2246 -> 2305[label="",style="dashed", color="green", weight=3]; 2247 -> 1176[label="",style="dashed", color="red", weight=0]; 2247[label="error []",fontsize=16,color="magenta"];2248[label="Neg (primModNatS vuz900 (Succ vuz11600))",fontsize=16,color="green",shape="box"];2248 -> 2306[label="",style="dashed", color="green", weight=3]; 2249 -> 1176[label="",style="dashed", color="red", weight=0]; 2249[label="error []",fontsize=16,color="magenta"];2250[label="Neg (primModNatS vuz900 (Succ vuz11600))",fontsize=16,color="green",shape="box"];2250 -> 2307[label="",style="dashed", color="green", weight=3]; 2251 -> 1176[label="",style="dashed", color="red", weight=0]; 2251[label="error []",fontsize=16,color="magenta"];1563[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero))) (not (compare (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero))) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero))) (not (compare (absReal1 (Integer vuz37) (Integer vuz37 >= fromInt (Pos Zero))) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1563 -> 1759[label="",style="solid", color="black", weight=3]; 1564[label="Integer vuz59 `quot` gcd0Gcd'1 (abs (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) == fromInt (Pos Zero)) (abs (Integer vuz60)) (abs (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1564 -> 1760[label="",style="solid", color="black", weight=3]; 2179[label="signumReal1 (Integer (Pos (Succ vuz3400))) (primCmpInt (Pos (Succ vuz3400)) (Pos vuz11700) == GT)",fontsize=16,color="black",shape="box"];2179 -> 2198[label="",style="solid", color="black", weight=3]; 2180[label="signumReal1 (Integer (Pos (Succ vuz3400))) (primCmpInt (Pos (Succ vuz3400)) (Neg vuz11700) == GT)",fontsize=16,color="black",shape="box"];2180 -> 2199[label="",style="solid", color="black", weight=3]; 2181[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos vuz11700) == GT)",fontsize=16,color="burlywood",shape="box"];5784[label="vuz11700/Succ vuz117000",fontsize=10,color="white",style="solid",shape="box"];2181 -> 5784[label="",style="solid", color="burlywood", weight=9]; 5784 -> 2200[label="",style="solid", color="burlywood", weight=3]; 5785[label="vuz11700/Zero",fontsize=10,color="white",style="solid",shape="box"];2181 -> 5785[label="",style="solid", color="burlywood", weight=9]; 5785 -> 2201[label="",style="solid", color="burlywood", weight=3]; 2182[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Neg vuz11700) == GT)",fontsize=16,color="burlywood",shape="box"];5786[label="vuz11700/Succ vuz117000",fontsize=10,color="white",style="solid",shape="box"];2182 -> 5786[label="",style="solid", color="burlywood", weight=9]; 5786 -> 2202[label="",style="solid", color="burlywood", weight=3]; 5787[label="vuz11700/Zero",fontsize=10,color="white",style="solid",shape="box"];2182 -> 5787[label="",style="solid", color="burlywood", weight=9]; 5787 -> 2203[label="",style="solid", color="burlywood", weight=3]; 2183[label="signumReal1 (Integer (Neg (Succ vuz3400))) (primCmpInt (Neg (Succ vuz3400)) (Pos vuz11700) == GT)",fontsize=16,color="black",shape="box"];2183 -> 2204[label="",style="solid", color="black", weight=3]; 2184[label="signumReal1 (Integer (Neg (Succ vuz3400))) (primCmpInt (Neg (Succ vuz3400)) (Neg vuz11700) == GT)",fontsize=16,color="black",shape="box"];2184 -> 2205[label="",style="solid", color="black", weight=3]; 2185[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos vuz11700) == GT)",fontsize=16,color="burlywood",shape="box"];5788[label="vuz11700/Succ vuz117000",fontsize=10,color="white",style="solid",shape="box"];2185 -> 5788[label="",style="solid", color="burlywood", weight=9]; 5788 -> 2206[label="",style="solid", color="burlywood", weight=3]; 5789[label="vuz11700/Zero",fontsize=10,color="white",style="solid",shape="box"];2185 -> 5789[label="",style="solid", color="burlywood", weight=9]; 5789 -> 2207[label="",style="solid", color="burlywood", weight=3]; 2186[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Neg vuz11700) == GT)",fontsize=16,color="burlywood",shape="box"];5790[label="vuz11700/Succ vuz117000",fontsize=10,color="white",style="solid",shape="box"];2186 -> 5790[label="",style="solid", color="burlywood", weight=9]; 5790 -> 2208[label="",style="solid", color="burlywood", weight=3]; 5791[label="vuz11700/Zero",fontsize=10,color="white",style="solid",shape="box"];2186 -> 5791[label="",style="solid", color="burlywood", weight=9]; 5791 -> 2209[label="",style="solid", color="burlywood", weight=3]; 2188 -> 2031[label="",style="dashed", color="red", weight=0]; 2188[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2189 -> 2031[label="",style="dashed", color="red", weight=0]; 2189[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2187[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal1 (Integer vuz32) (Integer vuz32 >= vuz132) == vuz121) (abs (Integer vuz109)) (absReal1 (Integer vuz32) (Integer vuz32 >= vuz131))",fontsize=16,color="black",shape="triangle"];2187 -> 2210[label="",style="solid", color="black", weight=3]; 3507 -> 3385[label="",style="dashed", color="red", weight=0]; 3507[label="primDivNatS0 (Succ vuz175) (Succ vuz176) (primGEqNatS vuz1770 vuz1780)",fontsize=16,color="magenta"];3507 -> 3523[label="",style="dashed", color="magenta", weight=3]; 3507 -> 3524[label="",style="dashed", color="magenta", weight=3]; 3508[label="primDivNatS0 (Succ vuz175) (Succ vuz176) True",fontsize=16,color="black",shape="triangle"];3508 -> 3525[label="",style="solid", color="black", weight=3]; 3509[label="primDivNatS0 (Succ vuz175) (Succ vuz176) False",fontsize=16,color="black",shape="box"];3509 -> 3526[label="",style="solid", color="black", weight=3]; 3510 -> 3508[label="",style="dashed", color="red", weight=0]; 3510[label="primDivNatS0 (Succ vuz175) (Succ vuz176) True",fontsize=16,color="magenta"];1710[label="Succ vuz18000",fontsize=16,color="green",shape="box"];1711[label="Zero",fontsize=16,color="green",shape="box"];2304[label="primModNatS vuz900 (Succ vuz11600)",fontsize=16,color="burlywood",shape="triangle"];5792[label="vuz900/Succ vuz9000",fontsize=10,color="white",style="solid",shape="box"];2304 -> 5792[label="",style="solid", color="burlywood", weight=9]; 5792 -> 2341[label="",style="solid", color="burlywood", weight=3]; 5793[label="vuz900/Zero",fontsize=10,color="white",style="solid",shape="box"];2304 -> 5793[label="",style="solid", color="burlywood", weight=9]; 5793 -> 2342[label="",style="solid", color="burlywood", weight=3]; 2305 -> 2304[label="",style="dashed", color="red", weight=0]; 2305[label="primModNatS vuz900 (Succ vuz11600)",fontsize=16,color="magenta"];2305 -> 2343[label="",style="dashed", color="magenta", weight=3]; 2306 -> 2304[label="",style="dashed", color="red", weight=0]; 2306[label="primModNatS vuz900 (Succ vuz11600)",fontsize=16,color="magenta"];2306 -> 2344[label="",style="dashed", color="magenta", weight=3]; 2307 -> 2304[label="",style="dashed", color="red", weight=0]; 2307[label="primModNatS vuz900 (Succ vuz11600)",fontsize=16,color="magenta"];2307 -> 2345[label="",style="dashed", color="magenta", weight=3]; 2307 -> 2346[label="",style="dashed", color="magenta", weight=3]; 1759[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT)) (not (compare (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT)) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT)) (not (compare (absReal1 (Integer vuz37) (compare (Integer vuz37) (fromInt (Pos Zero)) /= LT)) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1759 -> 1823[label="",style="solid", color="black", weight=3]; 1760[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1760 -> 1824[label="",style="solid", color="black", weight=3]; 2198 -> 3113[label="",style="dashed", color="red", weight=0]; 2198[label="signumReal1 (Integer (Pos (Succ vuz3400))) (primCmpNat (Succ vuz3400) vuz11700 == GT)",fontsize=16,color="magenta"];2198 -> 3114[label="",style="dashed", color="magenta", weight=3]; 2198 -> 3115[label="",style="dashed", color="magenta", weight=3]; 2198 -> 3116[label="",style="dashed", color="magenta", weight=3]; 2199[label="signumReal1 (Integer (Pos (Succ vuz3400))) (GT == GT)",fontsize=16,color="black",shape="triangle"];2199 -> 2254[label="",style="solid", color="black", weight=3]; 2200[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos (Succ vuz117000)) == GT)",fontsize=16,color="black",shape="box"];2200 -> 2255[label="",style="solid", color="black", weight=3]; 2201[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Pos Zero) == GT)",fontsize=16,color="black",shape="box"];2201 -> 2256[label="",style="solid", color="black", weight=3]; 2202[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Neg (Succ vuz117000)) == GT)",fontsize=16,color="black",shape="box"];2202 -> 2257[label="",style="solid", color="black", weight=3]; 2203[label="signumReal1 (Integer (Pos Zero)) (primCmpInt (Pos Zero) (Neg Zero) == GT)",fontsize=16,color="black",shape="box"];2203 -> 2258[label="",style="solid", color="black", weight=3]; 2204[label="signumReal1 (Integer (Neg (Succ vuz3400))) (LT == GT)",fontsize=16,color="black",shape="triangle"];2204 -> 2259[label="",style="solid", color="black", weight=3]; 2205 -> 3701[label="",style="dashed", color="red", weight=0]; 2205[label="signumReal1 (Integer (Neg (Succ vuz3400))) (primCmpNat vuz11700 (Succ vuz3400) == GT)",fontsize=16,color="magenta"];2205 -> 3702[label="",style="dashed", color="magenta", weight=3]; 2205 -> 3703[label="",style="dashed", color="magenta", weight=3]; 2205 -> 3704[label="",style="dashed", color="magenta", weight=3]; 2206[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos (Succ vuz117000)) == GT)",fontsize=16,color="black",shape="box"];2206 -> 2262[label="",style="solid", color="black", weight=3]; 2207[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Pos Zero) == GT)",fontsize=16,color="black",shape="box"];2207 -> 2263[label="",style="solid", color="black", weight=3]; 2208[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Neg (Succ vuz117000)) == GT)",fontsize=16,color="black",shape="box"];2208 -> 2264[label="",style="solid", color="black", weight=3]; 2209[label="signumReal1 (Integer (Neg Zero)) (primCmpInt (Neg Zero) (Neg Zero) == GT)",fontsize=16,color="black",shape="box"];2209 -> 2265[label="",style="solid", color="black", weight=3]; 2210[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal1 (Integer vuz32) (compare (Integer vuz32) vuz132 /= LT) == vuz121) (abs (Integer vuz109)) (absReal1 (Integer vuz32) (compare (Integer vuz32) vuz132 /= LT))",fontsize=16,color="black",shape="box"];2210 -> 2266[label="",style="solid", color="black", weight=3]; 3523[label="vuz1770",fontsize=16,color="green",shape="box"];3524[label="vuz1780",fontsize=16,color="green",shape="box"];3525[label="Succ (primDivNatS (primMinusNatS (Succ vuz175) (Succ vuz176)) (Succ (Succ vuz176)))",fontsize=16,color="green",shape="box"];3525 -> 3532[label="",style="dashed", color="green", weight=3]; 3526[label="Zero",fontsize=16,color="green",shape="box"];2341[label="primModNatS (Succ vuz9000) (Succ vuz11600)",fontsize=16,color="black",shape="box"];2341 -> 2380[label="",style="solid", color="black", weight=3]; 2342[label="primModNatS Zero (Succ vuz11600)",fontsize=16,color="black",shape="box"];2342 -> 2381[label="",style="solid", color="black", weight=3]; 2343[label="vuz11600",fontsize=16,color="green",shape="box"];2344[label="vuz900",fontsize=16,color="green",shape="box"];2345[label="vuz11600",fontsize=16,color="green",shape="box"];2346[label="vuz900",fontsize=16,color="green",shape="box"];1823[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="black",shape="box"];1823 -> 1891[label="",style="solid", color="black", weight=3]; 1824[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal2 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal2 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))))",fontsize=16,color="black",shape="box"];1824 -> 1892[label="",style="solid", color="black", weight=3]; 3114[label="Succ vuz3400",fontsize=16,color="green",shape="box"];3115[label="vuz3400",fontsize=16,color="green",shape="box"];3116[label="vuz11700",fontsize=16,color="green",shape="box"];3113[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat vuz163 vuz164 == GT)",fontsize=16,color="burlywood",shape="triangle"];5794[label="vuz163/Succ vuz1630",fontsize=10,color="white",style="solid",shape="box"];3113 -> 5794[label="",style="solid", color="burlywood", weight=9]; 5794 -> 3135[label="",style="solid", color="burlywood", weight=3]; 5795[label="vuz163/Zero",fontsize=10,color="white",style="solid",shape="box"];3113 -> 5795[label="",style="solid", color="burlywood", weight=9]; 5795 -> 3136[label="",style="solid", color="burlywood", weight=3]; 2254[label="signumReal1 (Integer (Pos (Succ vuz3400))) True",fontsize=16,color="black",shape="box"];2254 -> 2310[label="",style="solid", color="black", weight=3]; 2255[label="signumReal1 (Integer (Pos Zero)) (primCmpNat Zero (Succ vuz117000) == GT)",fontsize=16,color="black",shape="box"];2255 -> 2311[label="",style="solid", color="black", weight=3]; 2256[label="signumReal1 (Integer (Pos Zero)) (EQ == GT)",fontsize=16,color="black",shape="triangle"];2256 -> 2312[label="",style="solid", color="black", weight=3]; 2257[label="signumReal1 (Integer (Pos Zero)) (GT == GT)",fontsize=16,color="black",shape="box"];2257 -> 2313[label="",style="solid", color="black", weight=3]; 2258 -> 2256[label="",style="dashed", color="red", weight=0]; 2258[label="signumReal1 (Integer (Pos Zero)) (EQ == GT)",fontsize=16,color="magenta"];2259[label="signumReal1 (Integer (Neg (Succ vuz3400))) False",fontsize=16,color="black",shape="triangle"];2259 -> 2314[label="",style="solid", color="black", weight=3]; 3702[label="vuz11700",fontsize=16,color="green",shape="box"];3703[label="Succ vuz3400",fontsize=16,color="green",shape="box"];3704[label="vuz3400",fontsize=16,color="green",shape="box"];3701[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat vuz199 vuz200 == GT)",fontsize=16,color="burlywood",shape="triangle"];5796[label="vuz199/Succ vuz1990",fontsize=10,color="white",style="solid",shape="box"];3701 -> 5796[label="",style="solid", color="burlywood", weight=9]; 5796 -> 3732[label="",style="solid", color="burlywood", weight=3]; 5797[label="vuz199/Zero",fontsize=10,color="white",style="solid",shape="box"];3701 -> 5797[label="",style="solid", color="burlywood", weight=9]; 5797 -> 3733[label="",style="solid", color="burlywood", weight=3]; 2262[label="signumReal1 (Integer (Neg Zero)) (LT == GT)",fontsize=16,color="black",shape="box"];2262 -> 2317[label="",style="solid", color="black", weight=3]; 2263[label="signumReal1 (Integer (Neg Zero)) (EQ == GT)",fontsize=16,color="black",shape="triangle"];2263 -> 2318[label="",style="solid", color="black", weight=3]; 2264[label="signumReal1 (Integer (Neg Zero)) (primCmpNat (Succ vuz117000) Zero == GT)",fontsize=16,color="black",shape="box"];2264 -> 2319[label="",style="solid", color="black", weight=3]; 2265 -> 2263[label="",style="dashed", color="red", weight=0]; 2265[label="signumReal1 (Integer (Neg Zero)) (EQ == GT)",fontsize=16,color="magenta"];2266 -> 2884[label="",style="dashed", color="red", weight=0]; 2266[label="Integer vuz32 `quot` gcd0Gcd'1 (absReal1 (Integer vuz32) (not (compare (Integer vuz32) vuz132 == LT)) == vuz121) (abs (Integer vuz109)) (absReal1 (Integer vuz32) (not (compare (Integer vuz32) vuz132 == LT)))",fontsize=16,color="magenta"];2266 -> 2885[label="",style="dashed", color="magenta", weight=3]; 2266 -> 2886[label="",style="dashed", color="magenta", weight=3]; 2266 -> 2887[label="",style="dashed", color="magenta", weight=3]; 2266 -> 2888[label="",style="dashed", color="magenta", weight=3]; 2266 -> 2889[label="",style="dashed", color="magenta", weight=3]; 2266 -> 2890[label="",style="dashed", color="magenta", weight=3]; 2266 -> 2891[label="",style="dashed", color="magenta", weight=3]; 2266 -> 2892[label="",style="dashed", color="magenta", weight=3]; 2266 -> 2893[label="",style="dashed", color="magenta", weight=3]; 3532 -> 1210[label="",style="dashed", color="red", weight=0]; 3532[label="primDivNatS (primMinusNatS (Succ vuz175) (Succ vuz176)) (Succ (Succ vuz176))",fontsize=16,color="magenta"];3532 -> 3535[label="",style="dashed", color="magenta", weight=3]; 3532 -> 3536[label="",style="dashed", color="magenta", weight=3]; 2380[label="primModNatS0 vuz9000 vuz11600 (primGEqNatS vuz9000 vuz11600)",fontsize=16,color="burlywood",shape="box"];5798[label="vuz9000/Succ vuz90000",fontsize=10,color="white",style="solid",shape="box"];2380 -> 5798[label="",style="solid", color="burlywood", weight=9]; 5798 -> 2417[label="",style="solid", color="burlywood", weight=3]; 5799[label="vuz9000/Zero",fontsize=10,color="white",style="solid",shape="box"];2380 -> 5799[label="",style="solid", color="burlywood", weight=9]; 5799 -> 2418[label="",style="solid", color="burlywood", weight=3]; 2381[label="Zero",fontsize=16,color="green",shape="box"];1891 -> 2090[label="",style="dashed", color="red", weight=0]; 1891[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (fromInt (Pos Zero)) == LT)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (fromInt (Pos Zero)) == LT)))",fontsize=16,color="magenta"];1891 -> 2091[label="",style="dashed", color="magenta", weight=3]; 1891 -> 2092[label="",style="dashed", color="magenta", weight=3]; 1891 -> 2093[label="",style="dashed", color="magenta", weight=3]; 1892 -> 2111[label="",style="dashed", color="red", weight=0]; 1892[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)) >= fromInt (Pos Zero)) == fromInt (Pos Zero)) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT))) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (fromInt (Pos Zero)) == LT)) >= fromInt (Pos Zero)))",fontsize=16,color="magenta"];1892 -> 2112[label="",style="dashed", color="magenta", weight=3]; 1892 -> 2113[label="",style="dashed", color="magenta", weight=3]; 1892 -> 2114[label="",style="dashed", color="magenta", weight=3]; 1892 -> 2115[label="",style="dashed", color="magenta", weight=3]; 1892 -> 2116[label="",style="dashed", color="magenta", weight=3]; 1892 -> 2117[label="",style="dashed", color="magenta", weight=3]; 1892 -> 2118[label="",style="dashed", color="magenta", weight=3]; 3135[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat (Succ vuz1630) vuz164 == GT)",fontsize=16,color="burlywood",shape="box"];5800[label="vuz164/Succ vuz1640",fontsize=10,color="white",style="solid",shape="box"];3135 -> 5800[label="",style="solid", color="burlywood", weight=9]; 5800 -> 3164[label="",style="solid", color="burlywood", weight=3]; 5801[label="vuz164/Zero",fontsize=10,color="white",style="solid",shape="box"];3135 -> 5801[label="",style="solid", color="burlywood", weight=9]; 5801 -> 3165[label="",style="solid", color="burlywood", weight=3]; 3136[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat Zero vuz164 == GT)",fontsize=16,color="burlywood",shape="box"];5802[label="vuz164/Succ vuz1640",fontsize=10,color="white",style="solid",shape="box"];3136 -> 5802[label="",style="solid", color="burlywood", weight=9]; 5802 -> 3166[label="",style="solid", color="burlywood", weight=3]; 5803[label="vuz164/Zero",fontsize=10,color="white",style="solid",shape="box"];3136 -> 5803[label="",style="solid", color="burlywood", weight=9]; 5803 -> 3167[label="",style="solid", color="burlywood", weight=3]; 2311[label="signumReal1 (Integer (Pos Zero)) (LT == GT)",fontsize=16,color="black",shape="box"];2311 -> 2350[label="",style="solid", color="black", weight=3]; 2312[label="signumReal1 (Integer (Pos Zero)) False",fontsize=16,color="black",shape="triangle"];2312 -> 2351[label="",style="solid", color="black", weight=3]; 2313[label="signumReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];2313 -> 2352[label="",style="solid", color="black", weight=3]; 2314[label="signumReal0 (Integer (Neg (Succ vuz3400))) otherwise",fontsize=16,color="black",shape="box"];2314 -> 2353[label="",style="solid", color="black", weight=3]; 3732[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat (Succ vuz1990) vuz200 == GT)",fontsize=16,color="burlywood",shape="box"];5804[label="vuz200/Succ vuz2000",fontsize=10,color="white",style="solid",shape="box"];3732 -> 5804[label="",style="solid", color="burlywood", weight=9]; 5804 -> 3752[label="",style="solid", color="burlywood", weight=3]; 5805[label="vuz200/Zero",fontsize=10,color="white",style="solid",shape="box"];3732 -> 5805[label="",style="solid", color="burlywood", weight=9]; 5805 -> 3753[label="",style="solid", color="burlywood", weight=3]; 3733[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat Zero vuz200 == GT)",fontsize=16,color="burlywood",shape="box"];5806[label="vuz200/Succ vuz2000",fontsize=10,color="white",style="solid",shape="box"];3733 -> 5806[label="",style="solid", color="burlywood", weight=9]; 5806 -> 3754[label="",style="solid", color="burlywood", weight=3]; 5807[label="vuz200/Zero",fontsize=10,color="white",style="solid",shape="box"];3733 -> 5807[label="",style="solid", color="burlywood", weight=9]; 5807 -> 3755[label="",style="solid", color="burlywood", weight=3]; 2317[label="signumReal1 (Integer (Neg Zero)) False",fontsize=16,color="black",shape="triangle"];2317 -> 2356[label="",style="solid", color="black", weight=3]; 2318 -> 2317[label="",style="dashed", color="red", weight=0]; 2318[label="signumReal1 (Integer (Neg Zero)) False",fontsize=16,color="magenta"];2319[label="signumReal1 (Integer (Neg Zero)) (GT == GT)",fontsize=16,color="black",shape="box"];2319 -> 2357[label="",style="solid", color="black", weight=3]; 2885[label="vuz32",fontsize=16,color="green",shape="box"];2886[label="vuz121",fontsize=16,color="green",shape="box"];2887[label="vuz32",fontsize=16,color="green",shape="box"];2888[label="vuz32",fontsize=16,color="green",shape="box"];2889[label="vuz109",fontsize=16,color="green",shape="box"];2890[label="vuz32",fontsize=16,color="green",shape="box"];2891[label="vuz32",fontsize=16,color="green",shape="box"];2892[label="vuz132",fontsize=16,color="green",shape="box"];2893[label="vuz132",fontsize=16,color="green",shape="box"];2884[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (compare (Integer vuz160) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (compare (Integer vuz159) vuz119 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5808[label="vuz120/Integer vuz1200",fontsize=10,color="white",style="solid",shape="box"];2884 -> 5808[label="",style="solid", color="burlywood", weight=9]; 5808 -> 2912[label="",style="solid", color="burlywood", weight=3]; 3535[label="Succ vuz176",fontsize=16,color="green",shape="box"];3536 -> 2954[label="",style="dashed", color="red", weight=0]; 3536[label="primMinusNatS (Succ vuz175) (Succ vuz176)",fontsize=16,color="magenta"];3536 -> 3539[label="",style="dashed", color="magenta", weight=3]; 3536 -> 3540[label="",style="dashed", color="magenta", weight=3]; 2417[label="primModNatS0 (Succ vuz90000) vuz11600 (primGEqNatS (Succ vuz90000) vuz11600)",fontsize=16,color="burlywood",shape="box"];5809[label="vuz11600/Succ vuz116000",fontsize=10,color="white",style="solid",shape="box"];2417 -> 5809[label="",style="solid", color="burlywood", weight=9]; 5809 -> 2457[label="",style="solid", color="burlywood", weight=3]; 5810[label="vuz11600/Zero",fontsize=10,color="white",style="solid",shape="box"];2417 -> 5810[label="",style="solid", color="burlywood", weight=9]; 5810 -> 2458[label="",style="solid", color="burlywood", weight=3]; 2418[label="primModNatS0 Zero vuz11600 (primGEqNatS Zero vuz11600)",fontsize=16,color="burlywood",shape="box"];5811[label="vuz11600/Succ vuz116000",fontsize=10,color="white",style="solid",shape="box"];2418 -> 5811[label="",style="solid", color="burlywood", weight=9]; 5811 -> 2459[label="",style="solid", color="burlywood", weight=3]; 5812[label="vuz11600/Zero",fontsize=10,color="white",style="solid",shape="box"];2418 -> 5812[label="",style="solid", color="burlywood", weight=9]; 5812 -> 2460[label="",style="solid", color="burlywood", weight=3]; 2091 -> 2031[label="",style="dashed", color="red", weight=0]; 2091[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2092 -> 2031[label="",style="dashed", color="red", weight=0]; 2092[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2093 -> 2031[label="",style="dashed", color="red", weight=0]; 2093[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2090[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer (Pos Zero)) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2090 -> 2141[label="",style="solid", color="black", weight=3]; 2112 -> 2031[label="",style="dashed", color="red", weight=0]; 2112[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2113 -> 2031[label="",style="dashed", color="red", weight=0]; 2113[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2114 -> 2031[label="",style="dashed", color="red", weight=0]; 2114[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2115 -> 2031[label="",style="dashed", color="red", weight=0]; 2115[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2116 -> 2031[label="",style="dashed", color="red", weight=0]; 2116[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2117 -> 2031[label="",style="dashed", color="red", weight=0]; 2117[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2118 -> 2031[label="",style="dashed", color="red", weight=0]; 2118[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2111[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz129 == LT))) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT)) >= vuz126) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz127 == LT))) (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz128 == LT)) >= vuz125))",fontsize=16,color="black",shape="triangle"];2111 -> 2142[label="",style="solid", color="black", weight=3]; 3164[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat (Succ vuz1630) (Succ vuz1640) == GT)",fontsize=16,color="black",shape="box"];3164 -> 3223[label="",style="solid", color="black", weight=3]; 3165[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat (Succ vuz1630) Zero == GT)",fontsize=16,color="black",shape="box"];3165 -> 3224[label="",style="solid", color="black", weight=3]; 3166[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat Zero (Succ vuz1640) == GT)",fontsize=16,color="black",shape="box"];3166 -> 3225[label="",style="solid", color="black", weight=3]; 3167[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];3167 -> 3226[label="",style="solid", color="black", weight=3]; 2350 -> 2312[label="",style="dashed", color="red", weight=0]; 2350[label="signumReal1 (Integer (Pos Zero)) False",fontsize=16,color="magenta"];2351[label="signumReal0 (Integer (Pos Zero)) otherwise",fontsize=16,color="black",shape="box"];2351 -> 2386[label="",style="solid", color="black", weight=3]; 2352 -> 2310[label="",style="dashed", color="red", weight=0]; 2352[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2353[label="signumReal0 (Integer (Neg (Succ vuz3400))) True",fontsize=16,color="black",shape="box"];2353 -> 2387[label="",style="solid", color="black", weight=3]; 3752[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat (Succ vuz1990) (Succ vuz2000) == GT)",fontsize=16,color="black",shape="box"];3752 -> 3798[label="",style="solid", color="black", weight=3]; 3753[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat (Succ vuz1990) Zero == GT)",fontsize=16,color="black",shape="box"];3753 -> 3799[label="",style="solid", color="black", weight=3]; 3754[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat Zero (Succ vuz2000) == GT)",fontsize=16,color="black",shape="box"];3754 -> 3800[label="",style="solid", color="black", weight=3]; 3755[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];3755 -> 3801[label="",style="solid", color="black", weight=3]; 2356[label="signumReal0 (Integer (Neg Zero)) otherwise",fontsize=16,color="black",shape="box"];2356 -> 2392[label="",style="solid", color="black", weight=3]; 2357[label="signumReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];2357 -> 2393[label="",style="solid", color="black", weight=3]; 2912[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (compare (Integer vuz160) (Integer vuz1200) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (compare (Integer vuz159) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2912 -> 2955[label="",style="solid", color="black", weight=3]; 3539[label="Succ vuz175",fontsize=16,color="green",shape="box"];3540[label="Succ vuz176",fontsize=16,color="green",shape="box"];2954[label="primMinusNatS vuz154 vuz155",fontsize=16,color="burlywood",shape="triangle"];5813[label="vuz154/Succ vuz1540",fontsize=10,color="white",style="solid",shape="box"];2954 -> 5813[label="",style="solid", color="burlywood", weight=9]; 5813 -> 2996[label="",style="solid", color="burlywood", weight=3]; 5814[label="vuz154/Zero",fontsize=10,color="white",style="solid",shape="box"];2954 -> 5814[label="",style="solid", color="burlywood", weight=9]; 5814 -> 2997[label="",style="solid", color="burlywood", weight=3]; 2457[label="primModNatS0 (Succ vuz90000) (Succ vuz116000) (primGEqNatS (Succ vuz90000) (Succ vuz116000))",fontsize=16,color="black",shape="box"];2457 -> 2508[label="",style="solid", color="black", weight=3]; 2458[label="primModNatS0 (Succ vuz90000) Zero (primGEqNatS (Succ vuz90000) Zero)",fontsize=16,color="black",shape="box"];2458 -> 2509[label="",style="solid", color="black", weight=3]; 2459[label="primModNatS0 Zero (Succ vuz116000) (primGEqNatS Zero (Succ vuz116000))",fontsize=16,color="black",shape="box"];2459 -> 2510[label="",style="solid", color="black", weight=3]; 2460[label="primModNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];2460 -> 2511[label="",style="solid", color="black", weight=3]; 2141[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (primCmpInt vuz37 (Pos Zero) == LT))) (not (compare (absReal1 (Integer vuz37) (not (primCmpInt vuz37 (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (primCmpInt vuz37 (Pos Zero) == LT))) (not (compare (absReal1 (Integer vuz37) (not (primCmpInt vuz37 (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="burlywood",shape="box"];5815[label="vuz37/Pos vuz370",fontsize=10,color="white",style="solid",shape="box"];2141 -> 5815[label="",style="solid", color="burlywood", weight=9]; 5815 -> 2170[label="",style="solid", color="burlywood", weight=3]; 5816[label="vuz37/Neg vuz370",fontsize=10,color="white",style="solid",shape="box"];2141 -> 5816[label="",style="solid", color="burlywood", weight=9]; 5816 -> 2171[label="",style="solid", color="burlywood", weight=3]; 2142[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz129 == LT))) (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT))) vuz126 /= LT) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz127 == LT))) (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT))) vuz126 /= LT))",fontsize=16,color="black",shape="box"];2142 -> 2172[label="",style="solid", color="black", weight=3]; 3223 -> 3113[label="",style="dashed", color="red", weight=0]; 3223[label="signumReal1 (Integer (Pos (Succ vuz162))) (primCmpNat vuz1630 vuz1640 == GT)",fontsize=16,color="magenta"];3223 -> 3291[label="",style="dashed", color="magenta", weight=3]; 3223 -> 3292[label="",style="dashed", color="magenta", weight=3]; 3224[label="signumReal1 (Integer (Pos (Succ vuz162))) (GT == GT)",fontsize=16,color="black",shape="box"];3224 -> 3293[label="",style="solid", color="black", weight=3]; 3225[label="signumReal1 (Integer (Pos (Succ vuz162))) (LT == GT)",fontsize=16,color="black",shape="box"];3225 -> 3294[label="",style="solid", color="black", weight=3]; 3226[label="signumReal1 (Integer (Pos (Succ vuz162))) (EQ == GT)",fontsize=16,color="black",shape="box"];3226 -> 3295[label="",style="solid", color="black", weight=3]; 2386[label="signumReal0 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];2386 -> 2423[label="",style="solid", color="black", weight=3]; 3798 -> 3701[label="",style="dashed", color="red", weight=0]; 3798[label="signumReal1 (Integer (Neg (Succ vuz198))) (primCmpNat vuz1990 vuz2000 == GT)",fontsize=16,color="magenta"];3798 -> 3835[label="",style="dashed", color="magenta", weight=3]; 3798 -> 3836[label="",style="dashed", color="magenta", weight=3]; 3799[label="signumReal1 (Integer (Neg (Succ vuz198))) (GT == GT)",fontsize=16,color="black",shape="box"];3799 -> 3837[label="",style="solid", color="black", weight=3]; 3800[label="signumReal1 (Integer (Neg (Succ vuz198))) (LT == GT)",fontsize=16,color="black",shape="box"];3800 -> 3838[label="",style="solid", color="black", weight=3]; 3801[label="signumReal1 (Integer (Neg (Succ vuz198))) (EQ == GT)",fontsize=16,color="black",shape="box"];3801 -> 3839[label="",style="solid", color="black", weight=3]; 2392[label="signumReal0 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];2392 -> 2429[label="",style="solid", color="black", weight=3]; 2393 -> 2310[label="",style="dashed", color="red", weight=0]; 2393[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];2955[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt vuz160 vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt vuz160 vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5817[label="vuz160/Pos vuz1600",fontsize=10,color="white",style="solid",shape="box"];2955 -> 5817[label="",style="solid", color="burlywood", weight=9]; 5817 -> 2998[label="",style="solid", color="burlywood", weight=3]; 5818[label="vuz160/Neg vuz1600",fontsize=10,color="white",style="solid",shape="box"];2955 -> 5818[label="",style="solid", color="burlywood", weight=9]; 5818 -> 2999[label="",style="solid", color="burlywood", weight=3]; 2996[label="primMinusNatS (Succ vuz1540) vuz155",fontsize=16,color="burlywood",shape="box"];5819[label="vuz155/Succ vuz1550",fontsize=10,color="white",style="solid",shape="box"];2996 -> 5819[label="",style="solid", color="burlywood", weight=9]; 5819 -> 3030[label="",style="solid", color="burlywood", weight=3]; 5820[label="vuz155/Zero",fontsize=10,color="white",style="solid",shape="box"];2996 -> 5820[label="",style="solid", color="burlywood", weight=9]; 5820 -> 3031[label="",style="solid", color="burlywood", weight=3]; 2997[label="primMinusNatS Zero vuz155",fontsize=16,color="burlywood",shape="box"];5821[label="vuz155/Succ vuz1550",fontsize=10,color="white",style="solid",shape="box"];2997 -> 5821[label="",style="solid", color="burlywood", weight=9]; 5821 -> 3032[label="",style="solid", color="burlywood", weight=3]; 5822[label="vuz155/Zero",fontsize=10,color="white",style="solid",shape="box"];2997 -> 5822[label="",style="solid", color="burlywood", weight=9]; 5822 -> 3033[label="",style="solid", color="burlywood", weight=3]; 2508 -> 3575[label="",style="dashed", color="red", weight=0]; 2508[label="primModNatS0 (Succ vuz90000) (Succ vuz116000) (primGEqNatS vuz90000 vuz116000)",fontsize=16,color="magenta"];2508 -> 3576[label="",style="dashed", color="magenta", weight=3]; 2508 -> 3577[label="",style="dashed", color="magenta", weight=3]; 2508 -> 3578[label="",style="dashed", color="magenta", weight=3]; 2508 -> 3579[label="",style="dashed", color="magenta", weight=3]; 2509[label="primModNatS0 (Succ vuz90000) Zero True",fontsize=16,color="black",shape="box"];2509 -> 2570[label="",style="solid", color="black", weight=3]; 2510[label="primModNatS0 Zero (Succ vuz116000) False",fontsize=16,color="black",shape="box"];2510 -> 2571[label="",style="solid", color="black", weight=3]; 2511[label="primModNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];2511 -> 2572[label="",style="solid", color="black", weight=3]; 2170[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="burlywood",shape="box"];5823[label="vuz370/Succ vuz3700",fontsize=10,color="white",style="solid",shape="box"];2170 -> 5823[label="",style="solid", color="burlywood", weight=9]; 5823 -> 2328[label="",style="solid", color="burlywood", weight=3]; 5824[label="vuz370/Zero",fontsize=10,color="white",style="solid",shape="box"];2170 -> 5824[label="",style="solid", color="burlywood", weight=9]; 5824 -> 2329[label="",style="solid", color="burlywood", weight=3]; 2171[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="burlywood",shape="box"];5825[label="vuz370/Succ vuz3700",fontsize=10,color="white",style="solid",shape="box"];2171 -> 5825[label="",style="solid", color="burlywood", weight=9]; 5825 -> 2330[label="",style="solid", color="burlywood", weight=3]; 5826[label="vuz370/Zero",fontsize=10,color="white",style="solid",shape="box"];2171 -> 5826[label="",style="solid", color="burlywood", weight=9]; 5826 -> 2331[label="",style="solid", color="burlywood", weight=3]; 2172[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz129 == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz127 == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz130 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5827[label="vuz130/Integer vuz1300",fontsize=10,color="white",style="solid",shape="box"];2172 -> 5827[label="",style="solid", color="burlywood", weight=9]; 5827 -> 2332[label="",style="solid", color="burlywood", weight=3]; 3291[label="vuz1630",fontsize=16,color="green",shape="box"];3292[label="vuz1640",fontsize=16,color="green",shape="box"];3293[label="signumReal1 (Integer (Pos (Succ vuz162))) True",fontsize=16,color="black",shape="box"];3293 -> 3316[label="",style="solid", color="black", weight=3]; 3294[label="signumReal1 (Integer (Pos (Succ vuz162))) False",fontsize=16,color="black",shape="triangle"];3294 -> 3317[label="",style="solid", color="black", weight=3]; 3295 -> 3294[label="",style="dashed", color="red", weight=0]; 3295[label="signumReal1 (Integer (Pos (Succ vuz162))) False",fontsize=16,color="magenta"];2423 -> 2387[label="",style="dashed", color="red", weight=0]; 2423[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3835[label="vuz1990",fontsize=16,color="green",shape="box"];3836[label="vuz2000",fontsize=16,color="green",shape="box"];3837[label="signumReal1 (Integer (Neg (Succ vuz198))) True",fontsize=16,color="black",shape="box"];3837 -> 3869[label="",style="solid", color="black", weight=3]; 3838[label="signumReal1 (Integer (Neg (Succ vuz198))) False",fontsize=16,color="black",shape="triangle"];3838 -> 3870[label="",style="solid", color="black", weight=3]; 3839 -> 3838[label="",style="dashed", color="red", weight=0]; 3839[label="signumReal1 (Integer (Neg (Succ vuz198))) False",fontsize=16,color="magenta"];2429 -> 2387[label="",style="dashed", color="red", weight=0]; 2429[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];2998[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos vuz1600) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos vuz1600) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5828[label="vuz1600/Succ vuz16000",fontsize=10,color="white",style="solid",shape="box"];2998 -> 5828[label="",style="solid", color="burlywood", weight=9]; 5828 -> 3034[label="",style="solid", color="burlywood", weight=3]; 5829[label="vuz1600/Zero",fontsize=10,color="white",style="solid",shape="box"];2998 -> 5829[label="",style="solid", color="burlywood", weight=9]; 5829 -> 3035[label="",style="solid", color="burlywood", weight=3]; 2999[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg vuz1600) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg vuz1600) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5830[label="vuz1600/Succ vuz16000",fontsize=10,color="white",style="solid",shape="box"];2999 -> 5830[label="",style="solid", color="burlywood", weight=9]; 5830 -> 3036[label="",style="solid", color="burlywood", weight=3]; 5831[label="vuz1600/Zero",fontsize=10,color="white",style="solid",shape="box"];2999 -> 5831[label="",style="solid", color="burlywood", weight=9]; 5831 -> 3037[label="",style="solid", color="burlywood", weight=3]; 3030[label="primMinusNatS (Succ vuz1540) (Succ vuz1550)",fontsize=16,color="black",shape="box"];3030 -> 3077[label="",style="solid", color="black", weight=3]; 3031[label="primMinusNatS (Succ vuz1540) Zero",fontsize=16,color="black",shape="box"];3031 -> 3078[label="",style="solid", color="black", weight=3]; 3032[label="primMinusNatS Zero (Succ vuz1550)",fontsize=16,color="black",shape="box"];3032 -> 3079[label="",style="solid", color="black", weight=3]; 3033[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];3033 -> 3080[label="",style="solid", color="black", weight=3]; 3576[label="vuz90000",fontsize=16,color="green",shape="box"];3577[label="vuz116000",fontsize=16,color="green",shape="box"];3578[label="vuz90000",fontsize=16,color="green",shape="box"];3579[label="vuz116000",fontsize=16,color="green",shape="box"];3575[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS vuz193 vuz194)",fontsize=16,color="burlywood",shape="triangle"];5832[label="vuz193/Succ vuz1930",fontsize=10,color="white",style="solid",shape="box"];3575 -> 5832[label="",style="solid", color="burlywood", weight=9]; 5832 -> 3608[label="",style="solid", color="burlywood", weight=3]; 5833[label="vuz193/Zero",fontsize=10,color="white",style="solid",shape="box"];3575 -> 5833[label="",style="solid", color="burlywood", weight=9]; 5833 -> 3609[label="",style="solid", color="burlywood", weight=3]; 2570 -> 2304[label="",style="dashed", color="red", weight=0]; 2570[label="primModNatS (primMinusNatS (Succ vuz90000) Zero) (Succ Zero)",fontsize=16,color="magenta"];2570 -> 2614[label="",style="dashed", color="magenta", weight=3]; 2570 -> 2615[label="",style="dashed", color="magenta", weight=3]; 2571[label="Succ Zero",fontsize=16,color="green",shape="box"];2572 -> 2304[label="",style="dashed", color="red", weight=0]; 2572[label="primModNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];2572 -> 2616[label="",style="dashed", color="magenta", weight=3]; 2572 -> 2617[label="",style="dashed", color="magenta", weight=3]; 2328[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2328 -> 2366[label="",style="solid", color="black", weight=3]; 2329[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2329 -> 2367[label="",style="solid", color="black", weight=3]; 2330[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2330 -> 2368[label="",style="solid", color="black", weight=3]; 2331[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2331 -> 2369[label="",style="solid", color="black", weight=3]; 2332[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz129 == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer vuz1300) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (compare (Integer vuz37) vuz127 == LT))) (not (compare (absReal1 (Integer vuz37) (not (compare (Integer vuz37) (Integer vuz1300) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2332 -> 2370[label="",style="solid", color="black", weight=3]; 3316[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5834[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5834[label="",style="solid", color="blue", weight=9]; 5834 -> 3326[label="",style="solid", color="blue", weight=3]; 5835[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5835[label="",style="solid", color="blue", weight=9]; 5835 -> 3327[label="",style="solid", color="blue", weight=3]; 5836[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5836[label="",style="solid", color="blue", weight=9]; 5836 -> 3328[label="",style="solid", color="blue", weight=3]; 5837[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5837[label="",style="solid", color="blue", weight=9]; 5837 -> 3329[label="",style="solid", color="blue", weight=3]; 5838[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];3316 -> 5838[label="",style="solid", color="blue", weight=9]; 5838 -> 3330[label="",style="solid", color="blue", weight=3]; 3317[label="signumReal0 (Integer (Pos (Succ vuz162))) otherwise",fontsize=16,color="black",shape="box"];3317 -> 3331[label="",style="solid", color="black", weight=3]; 3869[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];5839[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5839[label="",style="solid", color="blue", weight=9]; 5839 -> 3922[label="",style="solid", color="blue", weight=3]; 5840[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5840[label="",style="solid", color="blue", weight=9]; 5840 -> 3923[label="",style="solid", color="blue", weight=3]; 5841[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5841[label="",style="solid", color="blue", weight=9]; 5841 -> 3924[label="",style="solid", color="blue", weight=3]; 5842[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5842[label="",style="solid", color="blue", weight=9]; 5842 -> 3925[label="",style="solid", color="blue", weight=3]; 5843[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];3869 -> 5843[label="",style="solid", color="blue", weight=9]; 5843 -> 3926[label="",style="solid", color="blue", weight=3]; 3870[label="signumReal0 (Integer (Neg (Succ vuz198))) otherwise",fontsize=16,color="black",shape="box"];3870 -> 3927[label="",style="solid", color="black", weight=3]; 3034[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos (Succ vuz16000)) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos (Succ vuz16000)) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5844[label="vuz1200/Pos vuz12000",fontsize=10,color="white",style="solid",shape="box"];3034 -> 5844[label="",style="solid", color="burlywood", weight=9]; 5844 -> 3081[label="",style="solid", color="burlywood", weight=3]; 5845[label="vuz1200/Neg vuz12000",fontsize=10,color="white",style="solid",shape="box"];3034 -> 5845[label="",style="solid", color="burlywood", weight=9]; 5845 -> 3082[label="",style="solid", color="burlywood", weight=3]; 3035[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5846[label="vuz1200/Pos vuz12000",fontsize=10,color="white",style="solid",shape="box"];3035 -> 5846[label="",style="solid", color="burlywood", weight=9]; 5846 -> 3083[label="",style="solid", color="burlywood", weight=3]; 5847[label="vuz1200/Neg vuz12000",fontsize=10,color="white",style="solid",shape="box"];3035 -> 5847[label="",style="solid", color="burlywood", weight=9]; 5847 -> 3084[label="",style="solid", color="burlywood", weight=3]; 3036[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg (Succ vuz16000)) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg (Succ vuz16000)) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5848[label="vuz1200/Pos vuz12000",fontsize=10,color="white",style="solid",shape="box"];3036 -> 5848[label="",style="solid", color="burlywood", weight=9]; 5848 -> 3085[label="",style="solid", color="burlywood", weight=3]; 5849[label="vuz1200/Neg vuz12000",fontsize=10,color="white",style="solid",shape="box"];3036 -> 5849[label="",style="solid", color="burlywood", weight=9]; 5849 -> 3086[label="",style="solid", color="burlywood", weight=3]; 3037[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) vuz1200 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) vuz1200 == LT)))",fontsize=16,color="burlywood",shape="box"];5850[label="vuz1200/Pos vuz12000",fontsize=10,color="white",style="solid",shape="box"];3037 -> 5850[label="",style="solid", color="burlywood", weight=9]; 5850 -> 3087[label="",style="solid", color="burlywood", weight=3]; 5851[label="vuz1200/Neg vuz12000",fontsize=10,color="white",style="solid",shape="box"];3037 -> 5851[label="",style="solid", color="burlywood", weight=9]; 5851 -> 3088[label="",style="solid", color="burlywood", weight=3]; 3077 -> 2954[label="",style="dashed", color="red", weight=0]; 3077[label="primMinusNatS vuz1540 vuz1550",fontsize=16,color="magenta"];3077 -> 3137[label="",style="dashed", color="magenta", weight=3]; 3077 -> 3138[label="",style="dashed", color="magenta", weight=3]; 3078[label="Succ vuz1540",fontsize=16,color="green",shape="box"];3079[label="Zero",fontsize=16,color="green",shape="box"];3080[label="Zero",fontsize=16,color="green",shape="box"];3608[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS (Succ vuz1930) vuz194)",fontsize=16,color="burlywood",shape="box"];5852[label="vuz194/Succ vuz1940",fontsize=10,color="white",style="solid",shape="box"];3608 -> 5852[label="",style="solid", color="burlywood", weight=9]; 5852 -> 3627[label="",style="solid", color="burlywood", weight=3]; 5853[label="vuz194/Zero",fontsize=10,color="white",style="solid",shape="box"];3608 -> 5853[label="",style="solid", color="burlywood", weight=9]; 5853 -> 3628[label="",style="solid", color="burlywood", weight=3]; 3609[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS Zero vuz194)",fontsize=16,color="burlywood",shape="box"];5854[label="vuz194/Succ vuz1940",fontsize=10,color="white",style="solid",shape="box"];3609 -> 5854[label="",style="solid", color="burlywood", weight=9]; 5854 -> 3629[label="",style="solid", color="burlywood", weight=3]; 5855[label="vuz194/Zero",fontsize=10,color="white",style="solid",shape="box"];3609 -> 5855[label="",style="solid", color="burlywood", weight=9]; 5855 -> 3630[label="",style="solid", color="burlywood", weight=3]; 2614[label="Zero",fontsize=16,color="green",shape="box"];2615 -> 1556[label="",style="dashed", color="red", weight=0]; 2615[label="primMinusNatS (Succ vuz90000) Zero",fontsize=16,color="magenta"];2615 -> 2655[label="",style="dashed", color="magenta", weight=3]; 2616[label="Zero",fontsize=16,color="green",shape="box"];2617 -> 1558[label="",style="dashed", color="red", weight=0]; 2617[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];2366[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) Zero == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) Zero == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2366 -> 2404[label="",style="solid", color="black", weight=3]; 2367[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2367 -> 2405[label="",style="solid", color="black", weight=3]; 2368[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2368 -> 2406[label="",style="solid", color="black", weight=3]; 2369[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2369 -> 2407[label="",style="solid", color="black", weight=3]; 2370[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer vuz37) (not (primCmpInt vuz37 vuz1300 == LT))) (not (compare (absReal1 (Integer vuz37) (not (primCmpInt vuz37 vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer vuz37) (not (primCmpInt vuz37 vuz1300 == LT))) (not (compare (absReal1 (Integer vuz37) (not (primCmpInt vuz37 vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5856[label="vuz37/Pos vuz370",fontsize=10,color="white",style="solid",shape="box"];2370 -> 5856[label="",style="solid", color="burlywood", weight=9]; 5856 -> 2408[label="",style="solid", color="burlywood", weight=3]; 5857[label="vuz37/Neg vuz370",fontsize=10,color="white",style="solid",shape="box"];2370 -> 5857[label="",style="solid", color="burlywood", weight=9]; 5857 -> 2409[label="",style="solid", color="burlywood", weight=3]; 3326 -> 2451[label="",style="dashed", color="red", weight=0]; 3326[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3327 -> 2310[label="",style="dashed", color="red", weight=0]; 3327[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3328 -> 2453[label="",style="dashed", color="red", weight=0]; 3328[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3329 -> 2454[label="",style="dashed", color="red", weight=0]; 3329[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3330 -> 584[label="",style="dashed", color="red", weight=0]; 3330[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3331[label="signumReal0 (Integer (Pos (Succ vuz162))) True",fontsize=16,color="black",shape="box"];3331 -> 3369[label="",style="solid", color="black", weight=3]; 3922 -> 2451[label="",style="dashed", color="red", weight=0]; 3922[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3923 -> 2310[label="",style="dashed", color="red", weight=0]; 3923[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3924 -> 2453[label="",style="dashed", color="red", weight=0]; 3924[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3925 -> 2454[label="",style="dashed", color="red", weight=0]; 3925[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3926 -> 584[label="",style="dashed", color="red", weight=0]; 3926[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];3927[label="signumReal0 (Integer (Neg (Succ vuz198))) True",fontsize=16,color="black",shape="box"];3927 -> 3970[label="",style="solid", color="black", weight=3]; 3081[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos (Succ vuz16000)) (Pos vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos (Succ vuz16000)) (Pos vuz12000) == LT)))",fontsize=16,color="black",shape="box"];3081 -> 3139[label="",style="solid", color="black", weight=3]; 3082[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos (Succ vuz16000)) (Neg vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos (Succ vuz16000)) (Neg vuz12000) == LT)))",fontsize=16,color="black",shape="box"];3082 -> 3140[label="",style="solid", color="black", weight=3]; 3083[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Pos vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Pos vuz12000) == LT)))",fontsize=16,color="burlywood",shape="box"];5858[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3083 -> 5858[label="",style="solid", color="burlywood", weight=9]; 5858 -> 3141[label="",style="solid", color="burlywood", weight=3]; 5859[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3083 -> 5859[label="",style="solid", color="burlywood", weight=9]; 5859 -> 3142[label="",style="solid", color="burlywood", weight=3]; 3084[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Neg vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Neg vuz12000) == LT)))",fontsize=16,color="burlywood",shape="box"];5860[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3084 -> 5860[label="",style="solid", color="burlywood", weight=9]; 5860 -> 3143[label="",style="solid", color="burlywood", weight=3]; 5861[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3084 -> 5861[label="",style="solid", color="burlywood", weight=9]; 5861 -> 3144[label="",style="solid", color="burlywood", weight=3]; 3085[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg (Succ vuz16000)) (Pos vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg (Succ vuz16000)) (Pos vuz12000) == LT)))",fontsize=16,color="black",shape="box"];3085 -> 3145[label="",style="solid", color="black", weight=3]; 3086[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg (Succ vuz16000)) (Neg vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg (Succ vuz16000)) (Neg vuz12000) == LT)))",fontsize=16,color="black",shape="box"];3086 -> 3146[label="",style="solid", color="black", weight=3]; 3087[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Pos vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Pos vuz12000) == LT)))",fontsize=16,color="burlywood",shape="box"];5862[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3087 -> 5862[label="",style="solid", color="burlywood", weight=9]; 5862 -> 3147[label="",style="solid", color="burlywood", weight=3]; 5863[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3087 -> 5863[label="",style="solid", color="burlywood", weight=9]; 5863 -> 3148[label="",style="solid", color="burlywood", weight=3]; 3088[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Neg vuz12000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Neg vuz12000) == LT)))",fontsize=16,color="burlywood",shape="box"];5864[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3088 -> 5864[label="",style="solid", color="burlywood", weight=9]; 5864 -> 3149[label="",style="solid", color="burlywood", weight=3]; 5865[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3088 -> 5865[label="",style="solid", color="burlywood", weight=9]; 5865 -> 3150[label="",style="solid", color="burlywood", weight=3]; 3137[label="vuz1540",fontsize=16,color="green",shape="box"];3138[label="vuz1550",fontsize=16,color="green",shape="box"];3627[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS (Succ vuz1930) (Succ vuz1940))",fontsize=16,color="black",shape="box"];3627 -> 3634[label="",style="solid", color="black", weight=3]; 3628[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS (Succ vuz1930) Zero)",fontsize=16,color="black",shape="box"];3628 -> 3635[label="",style="solid", color="black", weight=3]; 3629[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS Zero (Succ vuz1940))",fontsize=16,color="black",shape="box"];3629 -> 3636[label="",style="solid", color="black", weight=3]; 3630[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];3630 -> 3637[label="",style="solid", color="black", weight=3]; 2655[label="vuz90000",fontsize=16,color="green",shape="box"];2404[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2404 -> 2441[label="",style="solid", color="black", weight=3]; 2405[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not False)) (not (compare (absReal1 (Integer (Pos Zero)) (not False)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not False)) (not (compare (absReal1 (Integer (Pos Zero)) (not False)) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2405 -> 2442[label="",style="solid", color="black", weight=3]; 2406[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not True)) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not True)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not True)) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not True)) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2406 -> 2443[label="",style="solid", color="black", weight=3]; 2407[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not False)) (not (compare (absReal1 (Integer (Neg Zero)) (not False)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not False)) (not (compare (absReal1 (Integer (Neg Zero)) (not False)) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2407 -> 2444[label="",style="solid", color="black", weight=3]; 2408[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos vuz370)) (not (primCmpInt (Pos vuz370) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5866[label="vuz370/Succ vuz3700",fontsize=10,color="white",style="solid",shape="box"];2408 -> 5866[label="",style="solid", color="burlywood", weight=9]; 5866 -> 2445[label="",style="solid", color="burlywood", weight=3]; 5867[label="vuz370/Zero",fontsize=10,color="white",style="solid",shape="box"];2408 -> 5867[label="",style="solid", color="burlywood", weight=9]; 5867 -> 2446[label="",style="solid", color="burlywood", weight=3]; 2409[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg vuz370)) (not (primCmpInt (Neg vuz370) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5868[label="vuz370/Succ vuz3700",fontsize=10,color="white",style="solid",shape="box"];2409 -> 5868[label="",style="solid", color="burlywood", weight=9]; 5868 -> 2447[label="",style="solid", color="burlywood", weight=3]; 5869[label="vuz370/Zero",fontsize=10,color="white",style="solid",shape="box"];2409 -> 5869[label="",style="solid", color="burlywood", weight=9]; 5869 -> 2448[label="",style="solid", color="burlywood", weight=3]; 3369[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5870[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5870[label="",style="solid", color="blue", weight=9]; 5870 -> 3376[label="",style="solid", color="blue", weight=3]; 5871[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5871[label="",style="solid", color="blue", weight=9]; 5871 -> 3377[label="",style="solid", color="blue", weight=3]; 5872[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5872[label="",style="solid", color="blue", weight=9]; 5872 -> 3378[label="",style="solid", color="blue", weight=3]; 5873[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5873[label="",style="solid", color="blue", weight=9]; 5873 -> 3379[label="",style="solid", color="blue", weight=3]; 5874[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];3369 -> 5874[label="",style="solid", color="blue", weight=9]; 5874 -> 3380[label="",style="solid", color="blue", weight=3]; 3970[label="fromInt (Neg (Succ Zero))",fontsize=16,color="blue",shape="box"];5875[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5875[label="",style="solid", color="blue", weight=9]; 5875 -> 4010[label="",style="solid", color="blue", weight=3]; 5876[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5876[label="",style="solid", color="blue", weight=9]; 5876 -> 4011[label="",style="solid", color="blue", weight=3]; 5877[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5877[label="",style="solid", color="blue", weight=9]; 5877 -> 4012[label="",style="solid", color="blue", weight=3]; 5878[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5878[label="",style="solid", color="blue", weight=9]; 5878 -> 4013[label="",style="solid", color="blue", weight=3]; 5879[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];3970 -> 5879[label="",style="solid", color="blue", weight=9]; 5879 -> 4014[label="",style="solid", color="blue", weight=3]; 3139[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz16000) vuz12000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz16000) vuz12000 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5880[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3139 -> 5880[label="",style="solid", color="burlywood", weight=9]; 5880 -> 3169[label="",style="solid", color="burlywood", weight=3]; 5881[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3139 -> 5881[label="",style="solid", color="burlywood", weight=9]; 5881 -> 3170[label="",style="solid", color="burlywood", weight=3]; 3140[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (GT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (GT == LT)))",fontsize=16,color="black",shape="triangle"];3140 -> 3171[label="",style="solid", color="black", weight=3]; 3141[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Pos (Succ vuz120000)) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Pos (Succ vuz120000)) == LT)))",fontsize=16,color="black",shape="box"];3141 -> 3172[label="",style="solid", color="black", weight=3]; 3142[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];3142 -> 3173[label="",style="solid", color="black", weight=3]; 3143[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Neg (Succ vuz120000)) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Neg (Succ vuz120000)) == LT)))",fontsize=16,color="black",shape="box"];3143 -> 3174[label="",style="solid", color="black", weight=3]; 3144[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)))",fontsize=16,color="black",shape="box"];3144 -> 3175[label="",style="solid", color="black", weight=3]; 3145[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (LT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (LT == LT)))",fontsize=16,color="black",shape="triangle"];3145 -> 3176[label="",style="solid", color="black", weight=3]; 3146[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat vuz12000 (Succ vuz16000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat vuz12000 (Succ vuz16000) == LT)))",fontsize=16,color="burlywood",shape="triangle"];5882[label="vuz12000/Succ vuz120000",fontsize=10,color="white",style="solid",shape="box"];3146 -> 5882[label="",style="solid", color="burlywood", weight=9]; 5882 -> 3177[label="",style="solid", color="burlywood", weight=3]; 5883[label="vuz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];3146 -> 5883[label="",style="solid", color="burlywood", weight=9]; 5883 -> 3178[label="",style="solid", color="burlywood", weight=3]; 3147[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Pos (Succ vuz120000)) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Pos (Succ vuz120000)) == LT)))",fontsize=16,color="black",shape="box"];3147 -> 3179[label="",style="solid", color="black", weight=3]; 3148[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];3148 -> 3180[label="",style="solid", color="black", weight=3]; 3149[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Neg (Succ vuz120000)) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Neg (Succ vuz120000)) == LT)))",fontsize=16,color="black",shape="box"];3149 -> 3181[label="",style="solid", color="black", weight=3]; 3150[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)))",fontsize=16,color="black",shape="box"];3150 -> 3182[label="",style="solid", color="black", weight=3]; 3634 -> 3575[label="",style="dashed", color="red", weight=0]; 3634[label="primModNatS0 (Succ vuz191) (Succ vuz192) (primGEqNatS vuz1930 vuz1940)",fontsize=16,color="magenta"];3634 -> 3675[label="",style="dashed", color="magenta", weight=3]; 3634 -> 3676[label="",style="dashed", color="magenta", weight=3]; 3635[label="primModNatS0 (Succ vuz191) (Succ vuz192) True",fontsize=16,color="black",shape="triangle"];3635 -> 3677[label="",style="solid", color="black", weight=3]; 3636[label="primModNatS0 (Succ vuz191) (Succ vuz192) False",fontsize=16,color="black",shape="box"];3636 -> 3678[label="",style="solid", color="black", weight=3]; 3637 -> 3635[label="",style="dashed", color="red", weight=0]; 3637[label="primModNatS0 (Succ vuz191) (Succ vuz192) True",fontsize=16,color="magenta"];2441[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not False)) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not False)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not False)) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not False)) vuz119 == LT)))",fontsize=16,color="black",shape="triangle"];2441 -> 2486[label="",style="solid", color="black", weight=3]; 2442[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) True) (not (compare (absReal1 (Integer (Pos Zero)) True) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) True) (not (compare (absReal1 (Integer (Pos Zero)) True) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2442 -> 2487[label="",style="solid", color="black", weight=3]; 2443[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) False) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) False) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) False) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) False) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2443 -> 2488[label="",style="solid", color="black", weight=3]; 2444[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) True) (not (compare (absReal1 (Integer (Neg Zero)) True) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) True) (not (compare (absReal1 (Integer (Neg Zero)) True) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2444 -> 2489[label="",style="solid", color="black", weight=3]; 2445[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5884[label="vuz1300/Pos vuz13000",fontsize=10,color="white",style="solid",shape="box"];2445 -> 5884[label="",style="solid", color="burlywood", weight=9]; 5884 -> 2490[label="",style="solid", color="burlywood", weight=3]; 5885[label="vuz1300/Neg vuz13000",fontsize=10,color="white",style="solid",shape="box"];2445 -> 5885[label="",style="solid", color="burlywood", weight=9]; 5885 -> 2491[label="",style="solid", color="burlywood", weight=3]; 2446[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1300 == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5886[label="vuz1300/Pos vuz13000",fontsize=10,color="white",style="solid",shape="box"];2446 -> 5886[label="",style="solid", color="burlywood", weight=9]; 5886 -> 2492[label="",style="solid", color="burlywood", weight=3]; 5887[label="vuz1300/Neg vuz13000",fontsize=10,color="white",style="solid",shape="box"];2446 -> 5887[label="",style="solid", color="burlywood", weight=9]; 5887 -> 2493[label="",style="solid", color="burlywood", weight=3]; 2447[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5888[label="vuz1300/Pos vuz13000",fontsize=10,color="white",style="solid",shape="box"];2447 -> 5888[label="",style="solid", color="burlywood", weight=9]; 5888 -> 2494[label="",style="solid", color="burlywood", weight=3]; 5889[label="vuz1300/Neg vuz13000",fontsize=10,color="white",style="solid",shape="box"];2447 -> 5889[label="",style="solid", color="burlywood", weight=9]; 5889 -> 2495[label="",style="solid", color="burlywood", weight=3]; 2448[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1300 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1300 == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1300 == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5890[label="vuz1300/Pos vuz13000",fontsize=10,color="white",style="solid",shape="box"];2448 -> 5890[label="",style="solid", color="burlywood", weight=9]; 5890 -> 2496[label="",style="solid", color="burlywood", weight=3]; 5891[label="vuz1300/Neg vuz13000",fontsize=10,color="white",style="solid",shape="box"];2448 -> 5891[label="",style="solid", color="burlywood", weight=9]; 5891 -> 2497[label="",style="solid", color="burlywood", weight=3]; 3376 -> 2563[label="",style="dashed", color="red", weight=0]; 3376[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3377 -> 2387[label="",style="dashed", color="red", weight=0]; 3377[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3378 -> 2565[label="",style="dashed", color="red", weight=0]; 3378[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3379 -> 2566[label="",style="dashed", color="red", weight=0]; 3379[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3380 -> 711[label="",style="dashed", color="red", weight=0]; 3380[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4010 -> 2563[label="",style="dashed", color="red", weight=0]; 4010[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4011 -> 2387[label="",style="dashed", color="red", weight=0]; 4011[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4012 -> 2565[label="",style="dashed", color="red", weight=0]; 4012[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4013 -> 2566[label="",style="dashed", color="red", weight=0]; 4013[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];4014 -> 711[label="",style="dashed", color="red", weight=0]; 4014[label="fromInt (Neg (Succ Zero))",fontsize=16,color="magenta"];3169[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz16000) (Succ vuz120000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz16000) (Succ vuz120000) == LT)))",fontsize=16,color="black",shape="box"];3169 -> 3228[label="",style="solid", color="black", weight=3]; 3170[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz16000) Zero == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz16000) Zero == LT)))",fontsize=16,color="black",shape="box"];3170 -> 3229[label="",style="solid", color="black", weight=3]; 3171[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not False) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not False))",fontsize=16,color="black",shape="triangle"];3171 -> 3230[label="",style="solid", color="black", weight=3]; 3172 -> 3146[label="",style="dashed", color="red", weight=0]; 3172[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero (Succ vuz120000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero (Succ vuz120000) == LT)))",fontsize=16,color="magenta"];3172 -> 3231[label="",style="dashed", color="magenta", weight=3]; 3172 -> 3232[label="",style="dashed", color="magenta", weight=3]; 3173[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="black",shape="triangle"];3173 -> 3233[label="",style="solid", color="black", weight=3]; 3174 -> 3140[label="",style="dashed", color="red", weight=0]; 3174[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (GT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (GT == LT)))",fontsize=16,color="magenta"];3175 -> 3173[label="",style="dashed", color="red", weight=0]; 3175[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="magenta"];3176[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not True) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not True))",fontsize=16,color="black",shape="box"];3176 -> 3234[label="",style="solid", color="black", weight=3]; 3177[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz120000) (Succ vuz16000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz120000) (Succ vuz16000) == LT)))",fontsize=16,color="black",shape="box"];3177 -> 3235[label="",style="solid", color="black", weight=3]; 3178[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero (Succ vuz16000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero (Succ vuz16000) == LT)))",fontsize=16,color="black",shape="box"];3178 -> 3236[label="",style="solid", color="black", weight=3]; 3179 -> 3145[label="",style="dashed", color="red", weight=0]; 3179[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (LT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (LT == LT)))",fontsize=16,color="magenta"];3180 -> 3173[label="",style="dashed", color="red", weight=0]; 3180[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="magenta"];3181 -> 3139[label="",style="dashed", color="red", weight=0]; 3181[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz120000) Zero == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz120000) Zero == LT)))",fontsize=16,color="magenta"];3181 -> 3237[label="",style="dashed", color="magenta", weight=3]; 3181 -> 3238[label="",style="dashed", color="magenta", weight=3]; 3182 -> 3173[label="",style="dashed", color="red", weight=0]; 3182[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="magenta"];3675[label="vuz1930",fontsize=16,color="green",shape="box"];3676[label="vuz1940",fontsize=16,color="green",shape="box"];3677 -> 2304[label="",style="dashed", color="red", weight=0]; 3677[label="primModNatS (primMinusNatS (Succ vuz191) (Succ vuz192)) (Succ (Succ vuz192))",fontsize=16,color="magenta"];3677 -> 3734[label="",style="dashed", color="magenta", weight=3]; 3677 -> 3735[label="",style="dashed", color="magenta", weight=3]; 3678[label="Succ (Succ vuz191)",fontsize=16,color="green",shape="box"];2486[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) True) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) True) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) True) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) True) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2486 -> 2543[label="",style="solid", color="black", weight=3]; 2487 -> 2884[label="",style="dashed", color="red", weight=0]; 2487[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (compare (Integer (Pos Zero)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer (Pos Zero)) (not (compare (Integer (Pos Zero)) vuz119 == LT)))",fontsize=16,color="magenta"];2487 -> 2894[label="",style="dashed", color="magenta", weight=3]; 2487 -> 2895[label="",style="dashed", color="magenta", weight=3]; 2487 -> 2896[label="",style="dashed", color="magenta", weight=3]; 2487 -> 2897[label="",style="dashed", color="magenta", weight=3]; 2488[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Neg (Succ vuz3700))) otherwise) (not (compare (absReal0 (Integer (Neg (Succ vuz3700))) otherwise) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Neg (Succ vuz3700))) otherwise) (not (compare (absReal0 (Integer (Neg (Succ vuz3700))) otherwise) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2488 -> 2545[label="",style="solid", color="black", weight=3]; 2489 -> 2884[label="",style="dashed", color="red", weight=0]; 2489[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (compare (Integer (Neg Zero)) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer (Neg Zero)) (not (compare (Integer (Neg Zero)) vuz119 == LT)))",fontsize=16,color="magenta"];2489 -> 2898[label="",style="dashed", color="magenta", weight=3]; 2489 -> 2899[label="",style="dashed", color="magenta", weight=3]; 2489 -> 2900[label="",style="dashed", color="magenta", weight=3]; 2489 -> 2901[label="",style="dashed", color="magenta", weight=3]; 2490[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Pos vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2490 -> 2547[label="",style="solid", color="black", weight=3]; 2491[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Neg vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpInt (Pos (Succ vuz3700)) (Neg vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2491 -> 2548[label="",style="solid", color="black", weight=3]; 2492[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5892[label="vuz13000/Succ vuz130000",fontsize=10,color="white",style="solid",shape="box"];2492 -> 5892[label="",style="solid", color="burlywood", weight=9]; 5892 -> 2549[label="",style="solid", color="burlywood", weight=3]; 5893[label="vuz13000/Zero",fontsize=10,color="white",style="solid",shape="box"];2492 -> 5893[label="",style="solid", color="burlywood", weight=9]; 5893 -> 2550[label="",style="solid", color="burlywood", weight=3]; 2493[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5894[label="vuz13000/Succ vuz130000",fontsize=10,color="white",style="solid",shape="box"];2493 -> 5894[label="",style="solid", color="burlywood", weight=9]; 5894 -> 2551[label="",style="solid", color="burlywood", weight=3]; 5895[label="vuz13000/Zero",fontsize=10,color="white",style="solid",shape="box"];2493 -> 5895[label="",style="solid", color="burlywood", weight=9]; 5895 -> 2552[label="",style="solid", color="burlywood", weight=3]; 2494[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Pos vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2494 -> 2553[label="",style="solid", color="black", weight=3]; 2495[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Neg vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpInt (Neg (Succ vuz3700)) (Neg vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2495 -> 2554[label="",style="solid", color="black", weight=3]; 2496[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5896[label="vuz13000/Succ vuz130000",fontsize=10,color="white",style="solid",shape="box"];2496 -> 5896[label="",style="solid", color="burlywood", weight=9]; 5896 -> 2555[label="",style="solid", color="burlywood", weight=3]; 5897[label="vuz13000/Zero",fontsize=10,color="white",style="solid",shape="box"];2496 -> 5897[label="",style="solid", color="burlywood", weight=9]; 5897 -> 2556[label="",style="solid", color="burlywood", weight=3]; 2497[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz13000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz13000) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz13000) == LT))) vuz126 == LT)))",fontsize=16,color="burlywood",shape="box"];5898[label="vuz13000/Succ vuz130000",fontsize=10,color="white",style="solid",shape="box"];2497 -> 5898[label="",style="solid", color="burlywood", weight=9]; 5898 -> 2557[label="",style="solid", color="burlywood", weight=3]; 5899[label="vuz13000/Zero",fontsize=10,color="white",style="solid",shape="box"];2497 -> 5899[label="",style="solid", color="burlywood", weight=9]; 5899 -> 2558[label="",style="solid", color="burlywood", weight=3]; 3228[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat vuz16000 vuz120000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat vuz16000 vuz120000 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5900[label="vuz16000/Succ vuz160000",fontsize=10,color="white",style="solid",shape="box"];3228 -> 5900[label="",style="solid", color="burlywood", weight=9]; 5900 -> 3301[label="",style="solid", color="burlywood", weight=3]; 5901[label="vuz16000/Zero",fontsize=10,color="white",style="solid",shape="box"];3228 -> 5901[label="",style="solid", color="burlywood", weight=9]; 5901 -> 3302[label="",style="solid", color="burlywood", weight=3]; 3229 -> 3140[label="",style="dashed", color="red", weight=0]; 3229[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (GT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (GT == LT)))",fontsize=16,color="magenta"];3230[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) True == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) True)",fontsize=16,color="black",shape="box"];3230 -> 3303[label="",style="solid", color="black", weight=3]; 3231[label="Zero",fontsize=16,color="green",shape="box"];3232[label="vuz120000",fontsize=16,color="green",shape="box"];3233 -> 3171[label="",style="dashed", color="red", weight=0]; 3233[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not False) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not False))",fontsize=16,color="magenta"];3234[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) False == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) False)",fontsize=16,color="black",shape="box"];3234 -> 3304[label="",style="solid", color="black", weight=3]; 3235 -> 3228[label="",style="dashed", color="red", weight=0]; 3235[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat vuz120000 vuz16000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat vuz120000 vuz16000 == LT)))",fontsize=16,color="magenta"];3235 -> 3305[label="",style="dashed", color="magenta", weight=3]; 3235 -> 3306[label="",style="dashed", color="magenta", weight=3]; 3236 -> 3145[label="",style="dashed", color="red", weight=0]; 3236[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (LT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (LT == LT)))",fontsize=16,color="magenta"];3237[label="Zero",fontsize=16,color="green",shape="box"];3238[label="vuz120000",fontsize=16,color="green",shape="box"];3734[label="Succ vuz192",fontsize=16,color="green",shape="box"];3735 -> 2954[label="",style="dashed", color="red", weight=0]; 3735[label="primMinusNatS (Succ vuz191) (Succ vuz192)",fontsize=16,color="magenta"];3735 -> 3756[label="",style="dashed", color="magenta", weight=3]; 3735 -> 3757[label="",style="dashed", color="magenta", weight=3]; 2543 -> 2884[label="",style="dashed", color="red", weight=0]; 2543[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (compare (Integer (Pos (Succ vuz3700))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer (Pos (Succ vuz3700))) (not (compare (Integer (Pos (Succ vuz3700))) vuz119 == LT)))",fontsize=16,color="magenta"];2543 -> 2902[label="",style="dashed", color="magenta", weight=3]; 2543 -> 2903[label="",style="dashed", color="magenta", weight=3]; 2543 -> 2904[label="",style="dashed", color="magenta", weight=3]; 2543 -> 2905[label="",style="dashed", color="magenta", weight=3]; 2894[label="Pos Zero",fontsize=16,color="green",shape="box"];2895[label="Pos Zero",fontsize=16,color="green",shape="box"];2896[label="Pos Zero",fontsize=16,color="green",shape="box"];2897[label="Pos Zero",fontsize=16,color="green",shape="box"];2545[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Neg (Succ vuz3700))) True) (not (compare (absReal0 (Integer (Neg (Succ vuz3700))) True) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Neg (Succ vuz3700))) True) (not (compare (absReal0 (Integer (Neg (Succ vuz3700))) True) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2545 -> 2729[label="",style="solid", color="black", weight=3]; 2898[label="Neg Zero",fontsize=16,color="green",shape="box"];2899[label="Neg Zero",fontsize=16,color="green",shape="box"];2900[label="Neg Zero",fontsize=16,color="green",shape="box"];2901[label="Neg Zero",fontsize=16,color="green",shape="box"];2547 -> 4224[label="",style="dashed", color="red", weight=0]; 2547[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) vuz13000 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) vuz13000 == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) vuz13000 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (primCmpNat (Succ vuz3700) vuz13000 == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2547 -> 4225[label="",style="dashed", color="magenta", weight=3]; 2547 -> 4226[label="",style="dashed", color="magenta", weight=3]; 2547 -> 4227[label="",style="dashed", color="magenta", weight=3]; 2547 -> 4228[label="",style="dashed", color="magenta", weight=3]; 2547 -> 4229[label="",style="dashed", color="magenta", weight=3]; 2547 -> 4230[label="",style="dashed", color="magenta", weight=3]; 2547 -> 4231[label="",style="dashed", color="magenta", weight=3]; 2548 -> 2404[label="",style="dashed", color="red", weight=0]; 2548[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz3700))) (not (GT == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2548 -> 2733[label="",style="dashed", color="magenta", weight=3]; 2548 -> 2734[label="",style="dashed", color="magenta", weight=3]; 2548 -> 2735[label="",style="dashed", color="magenta", weight=3]; 2549[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz130000)) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz130000)) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2549 -> 2736[label="",style="solid", color="black", weight=3]; 2550[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2550 -> 2737[label="",style="solid", color="black", weight=3]; 2551[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz130000)) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz130000)) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2551 -> 2738[label="",style="solid", color="black", weight=3]; 2552[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2552 -> 2739[label="",style="solid", color="black", weight=3]; 2553 -> 2368[label="",style="dashed", color="red", weight=0]; 2553[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (LT == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2553 -> 2740[label="",style="dashed", color="magenta", weight=3]; 2553 -> 2741[label="",style="dashed", color="magenta", weight=3]; 2553 -> 2742[label="",style="dashed", color="magenta", weight=3]; 2554 -> 4336[label="",style="dashed", color="red", weight=0]; 2554[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpNat vuz13000 (Succ vuz3700) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpNat vuz13000 (Succ vuz3700) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpNat vuz13000 (Succ vuz3700) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz3700))) (not (primCmpNat vuz13000 (Succ vuz3700) == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2554 -> 4337[label="",style="dashed", color="magenta", weight=3]; 2554 -> 4338[label="",style="dashed", color="magenta", weight=3]; 2554 -> 4339[label="",style="dashed", color="magenta", weight=3]; 2554 -> 4340[label="",style="dashed", color="magenta", weight=3]; 2554 -> 4341[label="",style="dashed", color="magenta", weight=3]; 2554 -> 4342[label="",style="dashed", color="magenta", weight=3]; 2554 -> 4343[label="",style="dashed", color="magenta", weight=3]; 2555[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz130000)) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz130000)) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2555 -> 2745[label="",style="solid", color="black", weight=3]; 2556[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2556 -> 2746[label="",style="solid", color="black", weight=3]; 2557[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz130000)) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz130000)) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz130000)) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2557 -> 2747[label="",style="solid", color="black", weight=3]; 2558[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2558 -> 2748[label="",style="solid", color="black", weight=3]; 3301[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz160000) vuz120000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz160000) vuz120000 == LT)))",fontsize=16,color="burlywood",shape="box"];5902[label="vuz120000/Succ vuz1200000",fontsize=10,color="white",style="solid",shape="box"];3301 -> 5902[label="",style="solid", color="burlywood", weight=9]; 5902 -> 3318[label="",style="solid", color="burlywood", weight=3]; 5903[label="vuz120000/Zero",fontsize=10,color="white",style="solid",shape="box"];3301 -> 5903[label="",style="solid", color="burlywood", weight=9]; 5903 -> 3319[label="",style="solid", color="burlywood", weight=3]; 3302[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero vuz120000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero vuz120000 == LT)))",fontsize=16,color="burlywood",shape="box"];5904[label="vuz120000/Succ vuz1200000",fontsize=10,color="white",style="solid",shape="box"];3302 -> 5904[label="",style="solid", color="burlywood", weight=9]; 5904 -> 3320[label="",style="solid", color="burlywood", weight=3]; 5905[label="vuz120000/Zero",fontsize=10,color="white",style="solid",shape="box"];3302 -> 5905[label="",style="solid", color="burlywood", weight=9]; 5905 -> 3321[label="",style="solid", color="burlywood", weight=3]; 3303 -> 3372[label="",style="dashed", color="red", weight=0]; 3303[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer vuz158 == vuz118) (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="magenta"];3303 -> 3373[label="",style="dashed", color="magenta", weight=3]; 3304[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer vuz158) otherwise == vuz118) (abs (Integer vuz60)) (absReal0 (Integer vuz158) otherwise)",fontsize=16,color="black",shape="box"];3304 -> 3323[label="",style="solid", color="black", weight=3]; 3305[label="vuz120000",fontsize=16,color="green",shape="box"];3306[label="vuz16000",fontsize=16,color="green",shape="box"];3756[label="Succ vuz191",fontsize=16,color="green",shape="box"];3757[label="Succ vuz192",fontsize=16,color="green",shape="box"];2902[label="Pos (Succ vuz3700)",fontsize=16,color="green",shape="box"];2903[label="Pos (Succ vuz3700)",fontsize=16,color="green",shape="box"];2904[label="Pos (Succ vuz3700)",fontsize=16,color="green",shape="box"];2905[label="Pos (Succ vuz3700)",fontsize=16,color="green",shape="box"];2729[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (`negate` Integer (Neg (Succ vuz3700))) (not (compare (`negate` Integer (Neg (Succ vuz3700))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (`negate` Integer (Neg (Succ vuz3700))) (not (compare (`negate` Integer (Neg (Succ vuz3700))) vuz119 == LT)))",fontsize=16,color="black",shape="box"];2729 -> 2812[label="",style="solid", color="black", weight=3]; 4225[label="vuz3700",fontsize=16,color="green",shape="box"];4226[label="vuz59",fontsize=16,color="green",shape="box"];4227[label="Succ vuz3700",fontsize=16,color="green",shape="box"];4228[label="vuz60",fontsize=16,color="green",shape="box"];4229[label="vuz13000",fontsize=16,color="green",shape="box"];4230[label="vuz126",fontsize=16,color="green",shape="box"];4231[label="vuz124",fontsize=16,color="green",shape="box"];4224[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz208 vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz208 vuz209 == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz208 vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz208 vuz209 == LT))) vuz210 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5906[label="vuz208/Succ vuz2080",fontsize=10,color="white",style="solid",shape="box"];4224 -> 5906[label="",style="solid", color="burlywood", weight=9]; 5906 -> 4295[label="",style="solid", color="burlywood", weight=3]; 5907[label="vuz208/Zero",fontsize=10,color="white",style="solid",shape="box"];4224 -> 5907[label="",style="solid", color="burlywood", weight=9]; 5907 -> 4296[label="",style="solid", color="burlywood", weight=3]; 2733[label="vuz124",fontsize=16,color="green",shape="box"];2734[label="vuz126",fontsize=16,color="green",shape="box"];2735[label="vuz126",fontsize=16,color="green",shape="box"];2736[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz130000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz130000) == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz130000) == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz130000) == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2736 -> 2817[label="",style="solid", color="black", weight=3]; 2737 -> 2367[label="",style="dashed", color="red", weight=0]; 2737[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2737 -> 2818[label="",style="dashed", color="magenta", weight=3]; 2737 -> 2819[label="",style="dashed", color="magenta", weight=3]; 2737 -> 2820[label="",style="dashed", color="magenta", weight=3]; 2738[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (GT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (GT == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2738 -> 2821[label="",style="solid", color="black", weight=3]; 2739 -> 2367[label="",style="dashed", color="red", weight=0]; 2739[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (EQ == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2739 -> 2822[label="",style="dashed", color="magenta", weight=3]; 2739 -> 2823[label="",style="dashed", color="magenta", weight=3]; 2739 -> 2824[label="",style="dashed", color="magenta", weight=3]; 2740[label="vuz124",fontsize=16,color="green",shape="box"];2741[label="vuz126",fontsize=16,color="green",shape="box"];2742[label="vuz126",fontsize=16,color="green",shape="box"];4337[label="vuz126",fontsize=16,color="green",shape="box"];4338[label="vuz124",fontsize=16,color="green",shape="box"];4339[label="vuz59",fontsize=16,color="green",shape="box"];4340[label="vuz60",fontsize=16,color="green",shape="box"];4341[label="vuz13000",fontsize=16,color="green",shape="box"];4342[label="vuz3700",fontsize=16,color="green",shape="box"];4343[label="Succ vuz3700",fontsize=16,color="green",shape="box"];4336[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz216 vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz216 vuz217 == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz216 vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz216 vuz217 == LT))) vuz218 == LT)))",fontsize=16,color="burlywood",shape="triangle"];5908[label="vuz216/Succ vuz2160",fontsize=10,color="white",style="solid",shape="box"];4336 -> 5908[label="",style="solid", color="burlywood", weight=9]; 5908 -> 4407[label="",style="solid", color="burlywood", weight=3]; 5909[label="vuz216/Zero",fontsize=10,color="white",style="solid",shape="box"];4336 -> 5909[label="",style="solid", color="burlywood", weight=9]; 5909 -> 4408[label="",style="solid", color="burlywood", weight=3]; 2745[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (LT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (LT == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2745 -> 2827[label="",style="solid", color="black", weight=3]; 2746 -> 2369[label="",style="dashed", color="red", weight=0]; 2746[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2746 -> 2828[label="",style="dashed", color="magenta", weight=3]; 2746 -> 2829[label="",style="dashed", color="magenta", weight=3]; 2746 -> 2830[label="",style="dashed", color="magenta", weight=3]; 2747[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz130000) Zero == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz130000) Zero == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz130000) Zero == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz130000) Zero == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2747 -> 2831[label="",style="solid", color="black", weight=3]; 2748 -> 2369[label="",style="dashed", color="red", weight=0]; 2748[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (EQ == LT))) vuz126 == LT)))",fontsize=16,color="magenta"];2748 -> 2832[label="",style="dashed", color="magenta", weight=3]; 2748 -> 2833[label="",style="dashed", color="magenta", weight=3]; 2748 -> 2834[label="",style="dashed", color="magenta", weight=3]; 3318[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz160000) (Succ vuz1200000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz160000) (Succ vuz1200000) == LT)))",fontsize=16,color="black",shape="box"];3318 -> 3332[label="",style="solid", color="black", weight=3]; 3319[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat (Succ vuz160000) Zero == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat (Succ vuz160000) Zero == LT)))",fontsize=16,color="black",shape="box"];3319 -> 3333[label="",style="solid", color="black", weight=3]; 3320[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero (Succ vuz1200000) == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero (Succ vuz1200000) == LT)))",fontsize=16,color="black",shape="box"];3320 -> 3334[label="",style="solid", color="black", weight=3]; 3321[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat Zero Zero == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat Zero Zero == LT)))",fontsize=16,color="black",shape="box"];3321 -> 3335[label="",style="solid", color="black", weight=3]; 3373[label="Integer vuz158 == vuz118",fontsize=16,color="burlywood",shape="triangle"];5910[label="vuz118/Integer vuz1180",fontsize=10,color="white",style="solid",shape="box"];3373 -> 5910[label="",style="solid", color="burlywood", weight=9]; 5910 -> 3381[label="",style="solid", color="burlywood", weight=3]; 3372[label="Integer vuz59 `quot` gcd0Gcd'1 vuz173 (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="burlywood",shape="triangle"];5911[label="vuz173/False",fontsize=10,color="white",style="solid",shape="box"];3372 -> 5911[label="",style="solid", color="burlywood", weight=9]; 5911 -> 3382[label="",style="solid", color="burlywood", weight=3]; 5912[label="vuz173/True",fontsize=10,color="white",style="solid",shape="box"];3372 -> 5912[label="",style="solid", color="burlywood", weight=9]; 5912 -> 3383[label="",style="solid", color="burlywood", weight=3]; 3323[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer vuz158) True == vuz118) (abs (Integer vuz60)) (absReal0 (Integer vuz158) True)",fontsize=16,color="black",shape="box"];3323 -> 3337[label="",style="solid", color="black", weight=3]; 2812 -> 2884[label="",style="dashed", color="red", weight=0]; 2812[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (primNegInt (Neg (Succ vuz3700)))) (not (compare (Integer (primNegInt (Neg (Succ vuz3700)))) vuz120 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer (primNegInt (Neg (Succ vuz3700)))) (not (compare (Integer (primNegInt (Neg (Succ vuz3700)))) vuz119 == LT)))",fontsize=16,color="magenta"];2812 -> 2906[label="",style="dashed", color="magenta", weight=3]; 2812 -> 2907[label="",style="dashed", color="magenta", weight=3]; 2812 -> 2908[label="",style="dashed", color="magenta", weight=3]; 2812 -> 2909[label="",style="dashed", color="magenta", weight=3]; 4295[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) vuz209 == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) vuz209 == LT))) vuz210 == LT)))",fontsize=16,color="burlywood",shape="box"];5913[label="vuz209/Succ vuz2090",fontsize=10,color="white",style="solid",shape="box"];4295 -> 5913[label="",style="solid", color="burlywood", weight=9]; 5913 -> 4409[label="",style="solid", color="burlywood", weight=3]; 5914[label="vuz209/Zero",fontsize=10,color="white",style="solid",shape="box"];4295 -> 5914[label="",style="solid", color="burlywood", weight=9]; 5914 -> 4410[label="",style="solid", color="burlywood", weight=3]; 4296[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero vuz209 == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero vuz209 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero vuz209 == LT))) vuz210 == LT)))",fontsize=16,color="burlywood",shape="box"];5915[label="vuz209/Succ vuz2090",fontsize=10,color="white",style="solid",shape="box"];4296 -> 5915[label="",style="solid", color="burlywood", weight=9]; 5915 -> 4411[label="",style="solid", color="burlywood", weight=3]; 5916[label="vuz209/Zero",fontsize=10,color="white",style="solid",shape="box"];4296 -> 5916[label="",style="solid", color="burlywood", weight=9]; 5916 -> 4412[label="",style="solid", color="burlywood", weight=3]; 2817[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not (LT == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (LT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not (LT == LT))) (not (compare (absReal1 (Integer (Pos Zero)) (not (LT == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2817 -> 2926[label="",style="solid", color="black", weight=3]; 2818[label="vuz124",fontsize=16,color="green",shape="box"];2819[label="vuz126",fontsize=16,color="green",shape="box"];2820[label="vuz126",fontsize=16,color="green",shape="box"];2821 -> 2405[label="",style="dashed", color="red", weight=0]; 2821[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not False)) (not (compare (absReal1 (Integer (Pos Zero)) (not False)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not False)) (not (compare (absReal1 (Integer (Pos Zero)) (not False)) vuz126 == LT)))",fontsize=16,color="magenta"];2821 -> 2927[label="",style="dashed", color="magenta", weight=3]; 2821 -> 2928[label="",style="dashed", color="magenta", weight=3]; 2821 -> 2929[label="",style="dashed", color="magenta", weight=3]; 2822[label="vuz124",fontsize=16,color="green",shape="box"];2823[label="vuz126",fontsize=16,color="green",shape="box"];2824[label="vuz126",fontsize=16,color="green",shape="box"];4407[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) vuz217 == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) vuz217 == LT))) vuz218 == LT)))",fontsize=16,color="burlywood",shape="box"];5917[label="vuz217/Succ vuz2170",fontsize=10,color="white",style="solid",shape="box"];4407 -> 5917[label="",style="solid", color="burlywood", weight=9]; 5917 -> 4435[label="",style="solid", color="burlywood", weight=3]; 5918[label="vuz217/Zero",fontsize=10,color="white",style="solid",shape="box"];4407 -> 5918[label="",style="solid", color="burlywood", weight=9]; 5918 -> 4436[label="",style="solid", color="burlywood", weight=3]; 4408[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero vuz217 == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero vuz217 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero vuz217 == LT))) vuz218 == LT)))",fontsize=16,color="burlywood",shape="box"];5919[label="vuz217/Succ vuz2170",fontsize=10,color="white",style="solid",shape="box"];4408 -> 5919[label="",style="solid", color="burlywood", weight=9]; 5919 -> 4437[label="",style="solid", color="burlywood", weight=3]; 5920[label="vuz217/Zero",fontsize=10,color="white",style="solid",shape="box"];4408 -> 5920[label="",style="solid", color="burlywood", weight=9]; 5920 -> 4438[label="",style="solid", color="burlywood", weight=3]; 2827[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not True)) (not (compare (absReal1 (Integer (Neg Zero)) (not True)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not True)) (not (compare (absReal1 (Integer (Neg Zero)) (not True)) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2827 -> 2935[label="",style="solid", color="black", weight=3]; 2828[label="vuz124",fontsize=16,color="green",shape="box"];2829[label="vuz126",fontsize=16,color="green",shape="box"];2830[label="vuz126",fontsize=16,color="green",shape="box"];2831[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not (GT == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (GT == LT))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not (GT == LT))) (not (compare (absReal1 (Integer (Neg Zero)) (not (GT == LT))) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2831 -> 2936[label="",style="solid", color="black", weight=3]; 2832[label="vuz124",fontsize=16,color="green",shape="box"];2833[label="vuz126",fontsize=16,color="green",shape="box"];2834[label="vuz126",fontsize=16,color="green",shape="box"];3332 -> 3228[label="",style="dashed", color="red", weight=0]; 3332[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (primCmpNat vuz160000 vuz1200000 == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (primCmpNat vuz160000 vuz1200000 == LT)))",fontsize=16,color="magenta"];3332 -> 3370[label="",style="dashed", color="magenta", weight=3]; 3332 -> 3371[label="",style="dashed", color="magenta", weight=3]; 3333 -> 3140[label="",style="dashed", color="red", weight=0]; 3333[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (GT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (GT == LT)))",fontsize=16,color="magenta"];3334 -> 3145[label="",style="dashed", color="red", weight=0]; 3334[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (LT == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (LT == LT)))",fontsize=16,color="magenta"];3335 -> 3173[label="",style="dashed", color="red", weight=0]; 3335[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz158) (not (EQ == LT)) == vuz118) (abs (Integer vuz60)) (absReal1 (Integer vuz157) (not (EQ == LT)))",fontsize=16,color="magenta"];3381[label="Integer vuz158 == Integer vuz1180",fontsize=16,color="black",shape="box"];3381 -> 3429[label="",style="solid", color="black", weight=3]; 3382[label="Integer vuz59 `quot` gcd0Gcd'1 False (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="black",shape="box"];3382 -> 3430[label="",style="solid", color="black", weight=3]; 3383[label="Integer vuz59 `quot` gcd0Gcd'1 True (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="black",shape="box"];3383 -> 3431[label="",style="solid", color="black", weight=3]; 3337[label="Integer vuz59 `quot` gcd0Gcd'1 (`negate` Integer vuz158 == vuz118) (abs (Integer vuz60)) (`negate` Integer vuz158)",fontsize=16,color="black",shape="box"];3337 -> 3384[label="",style="solid", color="black", weight=3]; 2906 -> 471[label="",style="dashed", color="red", weight=0]; 2906[label="primNegInt (Neg (Succ vuz3700))",fontsize=16,color="magenta"];2906 -> 2950[label="",style="dashed", color="magenta", weight=3]; 2907 -> 471[label="",style="dashed", color="red", weight=0]; 2907[label="primNegInt (Neg (Succ vuz3700))",fontsize=16,color="magenta"];2907 -> 2951[label="",style="dashed", color="magenta", weight=3]; 2908 -> 471[label="",style="dashed", color="red", weight=0]; 2908[label="primNegInt (Neg (Succ vuz3700))",fontsize=16,color="magenta"];2908 -> 2952[label="",style="dashed", color="magenta", weight=3]; 2909 -> 471[label="",style="dashed", color="red", weight=0]; 2909[label="primNegInt (Neg (Succ vuz3700))",fontsize=16,color="magenta"];2909 -> 2953[label="",style="dashed", color="magenta", weight=3]; 4409[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) (Succ vuz2090) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) (Succ vuz2090) == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) (Succ vuz2090) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) (Succ vuz2090) == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4409 -> 4439[label="",style="solid", color="black", weight=3]; 4410[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) Zero == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat (Succ vuz2080) Zero == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4410 -> 4440[label="",style="solid", color="black", weight=3]; 4411[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero (Succ vuz2090) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero (Succ vuz2090) == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero (Succ vuz2090) == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero (Succ vuz2090) == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4411 -> 4441[label="",style="solid", color="black", weight=3]; 4412[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero Zero == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero Zero == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat Zero Zero == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4412 -> 4442[label="",style="solid", color="black", weight=3]; 2926[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) (not True)) (not (compare (absReal1 (Integer (Pos Zero)) (not True)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) (not True)) (not (compare (absReal1 (Integer (Pos Zero)) (not True)) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2926 -> 2968[label="",style="solid", color="black", weight=3]; 2927[label="vuz124",fontsize=16,color="green",shape="box"];2928[label="vuz126",fontsize=16,color="green",shape="box"];2929[label="vuz126",fontsize=16,color="green",shape="box"];4435[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) (Succ vuz2170) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) (Succ vuz2170) == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) (Succ vuz2170) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) (Succ vuz2170) == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4435 -> 4477[label="",style="solid", color="black", weight=3]; 4436[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) Zero == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) Zero == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) Zero == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat (Succ vuz2160) Zero == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4436 -> 4478[label="",style="solid", color="black", weight=3]; 4437[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero (Succ vuz2170) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero (Succ vuz2170) == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero (Succ vuz2170) == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero (Succ vuz2170) == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4437 -> 4479[label="",style="solid", color="black", weight=3]; 4438[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero Zero == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero Zero == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero Zero == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat Zero Zero == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4438 -> 4480[label="",style="solid", color="black", weight=3]; 2935[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) False) (not (compare (absReal1 (Integer (Neg Zero)) False) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) False) (not (compare (absReal1 (Integer (Neg Zero)) False) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2935 -> 2973[label="",style="solid", color="black", weight=3]; 2936 -> 2407[label="",style="dashed", color="red", weight=0]; 2936[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg Zero)) (not False)) (not (compare (absReal1 (Integer (Neg Zero)) (not False)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Neg Zero)) (not False)) (not (compare (absReal1 (Integer (Neg Zero)) (not False)) vuz126 == LT)))",fontsize=16,color="magenta"];2936 -> 2974[label="",style="dashed", color="magenta", weight=3]; 2936 -> 2975[label="",style="dashed", color="magenta", weight=3]; 2936 -> 2976[label="",style="dashed", color="magenta", weight=3]; 3370[label="vuz160000",fontsize=16,color="green",shape="box"];3371[label="vuz1200000",fontsize=16,color="green",shape="box"];3429 -> 1699[label="",style="dashed", color="red", weight=0]; 3429[label="primEqInt vuz158 vuz1180",fontsize=16,color="magenta"];3429 -> 3460[label="",style="dashed", color="magenta", weight=3]; 3429 -> 3461[label="",style="dashed", color="magenta", weight=3]; 3430[label="Integer vuz59 `quot` gcd0Gcd'0 (abs (Integer vuz60)) (Integer vuz158)",fontsize=16,color="black",shape="box"];3430 -> 3462[label="",style="solid", color="black", weight=3]; 3431[label="Integer vuz59 `quot` abs (Integer vuz60)",fontsize=16,color="black",shape="box"];3431 -> 3463[label="",style="solid", color="black", weight=3]; 3384 -> 3372[label="",style="dashed", color="red", weight=0]; 3384[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primNegInt vuz158) == vuz118) (abs (Integer vuz60)) (Integer (primNegInt vuz158))",fontsize=16,color="magenta"];3384 -> 3432[label="",style="dashed", color="magenta", weight=3]; 3384 -> 3433[label="",style="dashed", color="magenta", weight=3]; 2950[label="Neg (Succ vuz3700)",fontsize=16,color="green",shape="box"];2951[label="Neg (Succ vuz3700)",fontsize=16,color="green",shape="box"];2952[label="Neg (Succ vuz3700)",fontsize=16,color="green",shape="box"];2953[label="Neg (Succ vuz3700)",fontsize=16,color="green",shape="box"];4439 -> 4224[label="",style="dashed", color="red", weight=0]; 4439[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz2080 vuz2090 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz2080 vuz2090 == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz2080 vuz2090 == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (primCmpNat vuz2080 vuz2090 == LT))) vuz210 == LT)))",fontsize=16,color="magenta"];4439 -> 4481[label="",style="dashed", color="magenta", weight=3]; 4439 -> 4482[label="",style="dashed", color="magenta", weight=3]; 4440 -> 2404[label="",style="dashed", color="red", weight=0]; 4440[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (GT == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (GT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (GT == LT))) vuz210 == LT)))",fontsize=16,color="magenta"];4440 -> 4483[label="",style="dashed", color="magenta", weight=3]; 4440 -> 4484[label="",style="dashed", color="magenta", weight=3]; 4440 -> 4485[label="",style="dashed", color="magenta", weight=3]; 4440 -> 4486[label="",style="dashed", color="magenta", weight=3]; 4440 -> 4487[label="",style="dashed", color="magenta", weight=3]; 4440 -> 4488[label="",style="dashed", color="magenta", weight=3]; 4441[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (LT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (LT == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (LT == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (LT == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4441 -> 4489[label="",style="solid", color="black", weight=3]; 4442[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (EQ == LT))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not (EQ == LT))) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not (EQ == LT))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4442 -> 4490[label="",style="solid", color="black", weight=3]; 2968[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos Zero)) False) (not (compare (absReal1 (Integer (Pos Zero)) False) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal1 (Integer (Pos Zero)) False) (not (compare (absReal1 (Integer (Pos Zero)) False) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2968 -> 3009[label="",style="solid", color="black", weight=3]; 4477 -> 4336[label="",style="dashed", color="red", weight=0]; 4477[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz2160 vuz2170 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz2160 vuz2170 == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz2160 vuz2170 == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (primCmpNat vuz2160 vuz2170 == LT))) vuz218 == LT)))",fontsize=16,color="magenta"];4477 -> 4494[label="",style="dashed", color="magenta", weight=3]; 4477 -> 4495[label="",style="dashed", color="magenta", weight=3]; 4478[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (GT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (GT == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (GT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (GT == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4478 -> 4496[label="",style="solid", color="black", weight=3]; 4479 -> 2368[label="",style="dashed", color="red", weight=0]; 4479[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (LT == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (LT == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (LT == LT))) vuz218 == LT)))",fontsize=16,color="magenta"];4479 -> 4497[label="",style="dashed", color="magenta", weight=3]; 4479 -> 4498[label="",style="dashed", color="magenta", weight=3]; 4479 -> 4499[label="",style="dashed", color="magenta", weight=3]; 4479 -> 4500[label="",style="dashed", color="magenta", weight=3]; 4479 -> 4501[label="",style="dashed", color="magenta", weight=3]; 4479 -> 4502[label="",style="dashed", color="magenta", weight=3]; 4480[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (EQ == LT))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not (EQ == LT))) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not (EQ == LT))) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4480 -> 4503[label="",style="solid", color="black", weight=3]; 2973[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Neg Zero)) otherwise) (not (compare (absReal0 (Integer (Neg Zero)) otherwise) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Neg Zero)) otherwise) (not (compare (absReal0 (Integer (Neg Zero)) otherwise) vuz126 == LT)))",fontsize=16,color="black",shape="box"];2973 -> 3014[label="",style="solid", color="black", weight=3]; 2974[label="vuz124",fontsize=16,color="green",shape="box"];2975[label="vuz126",fontsize=16,color="green",shape="box"];2976[label="vuz126",fontsize=16,color="green",shape="box"];3460[label="vuz1180",fontsize=16,color="green",shape="box"];3461[label="vuz158",fontsize=16,color="green",shape="box"];3462[label="Integer vuz59 `quot` gcd0Gcd' (Integer vuz158) (abs (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3462 -> 3516[label="",style="solid", color="black", weight=3]; 3463[label="Integer vuz59 `quot` absReal (Integer vuz60)",fontsize=16,color="black",shape="box"];3463 -> 3517[label="",style="solid", color="black", weight=3]; 3432 -> 471[label="",style="dashed", color="red", weight=0]; 3432[label="primNegInt vuz158",fontsize=16,color="magenta"];3432 -> 3464[label="",style="dashed", color="magenta", weight=3]; 3433 -> 3373[label="",style="dashed", color="red", weight=0]; 3433[label="Integer (primNegInt vuz158) == vuz118",fontsize=16,color="magenta"];3433 -> 3465[label="",style="dashed", color="magenta", weight=3]; 4481[label="vuz2080",fontsize=16,color="green",shape="box"];4482[label="vuz2090",fontsize=16,color="green",shape="box"];4483[label="vuz211",fontsize=16,color="green",shape="box"];4484[label="vuz212",fontsize=16,color="green",shape="box"];4485[label="vuz206",fontsize=16,color="green",shape="box"];4486[label="vuz207",fontsize=16,color="green",shape="box"];4487[label="vuz210",fontsize=16,color="green",shape="box"];4488[label="vuz210",fontsize=16,color="green",shape="box"];4489[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not True)) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not True)) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not True)) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not True)) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4489 -> 4504[label="",style="solid", color="black", weight=3]; 4490 -> 2441[label="",style="dashed", color="red", weight=0]; 4490[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not False)) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not False)) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) (not False)) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) (not False)) vuz210 == LT)))",fontsize=16,color="magenta"];4490 -> 4505[label="",style="dashed", color="magenta", weight=3]; 4490 -> 4506[label="",style="dashed", color="magenta", weight=3]; 4490 -> 4507[label="",style="dashed", color="magenta", weight=3]; 4490 -> 4508[label="",style="dashed", color="magenta", weight=3]; 4490 -> 4509[label="",style="dashed", color="magenta", weight=3]; 4490 -> 4510[label="",style="dashed", color="magenta", weight=3]; 3009[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Pos Zero)) otherwise) (not (compare (absReal0 (Integer (Pos Zero)) otherwise) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Pos Zero)) otherwise) (not (compare (absReal0 (Integer (Pos Zero)) otherwise) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3009 -> 3054[label="",style="solid", color="black", weight=3]; 4494[label="vuz2160",fontsize=16,color="green",shape="box"];4495[label="vuz2170",fontsize=16,color="green",shape="box"];4496[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not False)) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not False)) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not False)) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not False)) vuz218 == LT)))",fontsize=16,color="black",shape="triangle"];4496 -> 4549[label="",style="solid", color="black", weight=3]; 4497[label="vuz219",fontsize=16,color="green",shape="box"];4498[label="vuz220",fontsize=16,color="green",shape="box"];4499[label="vuz214",fontsize=16,color="green",shape="box"];4500[label="vuz215",fontsize=16,color="green",shape="box"];4501[label="vuz218",fontsize=16,color="green",shape="box"];4502[label="vuz218",fontsize=16,color="green",shape="box"];4503 -> 4496[label="",style="dashed", color="red", weight=0]; 4503[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not False)) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not False)) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) (not False)) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) (not False)) vuz218 == LT)))",fontsize=16,color="magenta"];3014[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Neg Zero)) True) (not (compare (absReal0 (Integer (Neg Zero)) True) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Neg Zero)) True) (not (compare (absReal0 (Integer (Neg Zero)) True) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3014 -> 3063[label="",style="solid", color="black", weight=3]; 3516[label="Integer vuz59 `quot` gcd0Gcd'2 (Integer vuz158) (abs (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3516 -> 3527[label="",style="solid", color="black", weight=3]; 3517[label="Integer vuz59 `quot` absReal2 (Integer vuz60)",fontsize=16,color="black",shape="box"];3517 -> 3528[label="",style="solid", color="black", weight=3]; 3464[label="vuz158",fontsize=16,color="green",shape="box"];3465 -> 471[label="",style="dashed", color="red", weight=0]; 3465[label="primNegInt vuz158",fontsize=16,color="magenta"];3465 -> 3518[label="",style="dashed", color="magenta", weight=3]; 4504[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) False) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) False) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal1 (Integer (Pos (Succ vuz207))) False) (not (compare (absReal1 (Integer (Pos (Succ vuz207))) False) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4504 -> 4550[label="",style="solid", color="black", weight=3]; 4505[label="vuz211",fontsize=16,color="green",shape="box"];4506[label="vuz212",fontsize=16,color="green",shape="box"];4507[label="vuz206",fontsize=16,color="green",shape="box"];4508[label="vuz207",fontsize=16,color="green",shape="box"];4509[label="vuz210",fontsize=16,color="green",shape="box"];4510[label="vuz210",fontsize=16,color="green",shape="box"];3054[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Pos Zero)) True) (not (compare (absReal0 (Integer (Pos Zero)) True) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (absReal0 (Integer (Pos Zero)) True) (not (compare (absReal0 (Integer (Pos Zero)) True) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3054 -> 3106[label="",style="solid", color="black", weight=3]; 4549[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) True) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) True) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (absReal1 (Integer (Neg (Succ vuz215))) True) (not (compare (absReal1 (Integer (Neg (Succ vuz215))) True) vuz218 == LT)))",fontsize=16,color="black",shape="box"];4549 -> 4594[label="",style="solid", color="black", weight=3]; 3063[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (`negate` Integer (Neg Zero)) (not (compare (`negate` Integer (Neg Zero)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (`negate` Integer (Neg Zero)) (not (compare (`negate` Integer (Neg Zero)) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3063 -> 3112[label="",style="solid", color="black", weight=3]; 3527 -> 3533[label="",style="dashed", color="red", weight=0]; 3527[label="Integer vuz59 `quot` gcd0Gcd'1 (abs (Integer vuz60) `rem` Integer vuz158 == fromInt (Pos Zero)) (Integer vuz158) (abs (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="magenta"];3527 -> 3534[label="",style="dashed", color="magenta", weight=3]; 3528 -> 3537[label="",style="dashed", color="red", weight=0]; 3528[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (Integer vuz60 >= fromInt (Pos Zero))",fontsize=16,color="magenta"];3528 -> 3538[label="",style="dashed", color="magenta", weight=3]; 3518[label="vuz158",fontsize=16,color="green",shape="box"];4550[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Pos (Succ vuz207))) otherwise) (not (compare (absReal0 (Integer (Pos (Succ vuz207))) otherwise) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal0 (Integer (Pos (Succ vuz207))) otherwise) (not (compare (absReal0 (Integer (Pos (Succ vuz207))) otherwise) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4550 -> 4595[label="",style="solid", color="black", weight=3]; 3106[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (`negate` Integer (Pos Zero)) (not (compare (`negate` Integer (Pos Zero)) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (`negate` Integer (Pos Zero)) (not (compare (`negate` Integer (Pos Zero)) vuz126 == LT)))",fontsize=16,color="black",shape="box"];3106 -> 3206[label="",style="solid", color="black", weight=3]; 4594 -> 2884[label="",style="dashed", color="red", weight=0]; 4594[label="Integer vuz214 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz215))) (not (compare (Integer (Neg (Succ vuz215))) vuz218 == LT)) == vuz219) (abs (Integer vuz220)) (absReal1 (Integer (Neg (Succ vuz215))) (not (compare (Integer (Neg (Succ vuz215))) vuz218 == LT)))",fontsize=16,color="magenta"];4594 -> 4620[label="",style="dashed", color="magenta", weight=3]; 4594 -> 4621[label="",style="dashed", color="magenta", weight=3]; 4594 -> 4622[label="",style="dashed", color="magenta", weight=3]; 4594 -> 4623[label="",style="dashed", color="magenta", weight=3]; 4594 -> 4624[label="",style="dashed", color="magenta", weight=3]; 4594 -> 4625[label="",style="dashed", color="magenta", weight=3]; 4594 -> 4626[label="",style="dashed", color="magenta", weight=3]; 4594 -> 4627[label="",style="dashed", color="magenta", weight=3]; 4594 -> 4628[label="",style="dashed", color="magenta", weight=3]; 3112 -> 2884[label="",style="dashed", color="red", weight=0]; 3112[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (primNegInt (Neg Zero))) (not (compare (Integer (primNegInt (Neg Zero))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (Integer (primNegInt (Neg Zero))) (not (compare (Integer (primNegInt (Neg Zero))) vuz126 == LT)))",fontsize=16,color="magenta"];3112 -> 3212[label="",style="dashed", color="magenta", weight=3]; 3112 -> 3213[label="",style="dashed", color="magenta", weight=3]; 3112 -> 3214[label="",style="dashed", color="magenta", weight=3]; 3112 -> 3215[label="",style="dashed", color="magenta", weight=3]; 3112 -> 3216[label="",style="dashed", color="magenta", weight=3]; 3112 -> 3217[label="",style="dashed", color="magenta", weight=3]; 3112 -> 3218[label="",style="dashed", color="magenta", weight=3]; 3534 -> 2031[label="",style="dashed", color="red", weight=0]; 3534[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];3533[label="Integer vuz59 `quot` gcd0Gcd'1 (abs (Integer vuz60) `rem` Integer vuz158 == vuz186) (Integer vuz158) (abs (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3533 -> 3541[label="",style="solid", color="black", weight=3]; 3538 -> 2031[label="",style="dashed", color="red", weight=0]; 3538[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];3537[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (Integer vuz60 >= vuz187)",fontsize=16,color="black",shape="triangle"];3537 -> 3542[label="",style="solid", color="black", weight=3]; 4595[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (absReal0 (Integer (Pos (Succ vuz207))) True) (not (compare (absReal0 (Integer (Pos (Succ vuz207))) True) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (absReal0 (Integer (Pos (Succ vuz207))) True) (not (compare (absReal0 (Integer (Pos (Succ vuz207))) True) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4595 -> 4629[label="",style="solid", color="black", weight=3]; 3206 -> 2884[label="",style="dashed", color="red", weight=0]; 3206[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (primNegInt (Pos Zero))) (not (compare (Integer (primNegInt (Pos Zero))) vuz126 == LT)) == vuz124) (abs (Integer vuz60)) (absReal1 (Integer (primNegInt (Pos Zero))) (not (compare (Integer (primNegInt (Pos Zero))) vuz126 == LT)))",fontsize=16,color="magenta"];3206 -> 3261[label="",style="dashed", color="magenta", weight=3]; 3206 -> 3262[label="",style="dashed", color="magenta", weight=3]; 3206 -> 3263[label="",style="dashed", color="magenta", weight=3]; 3206 -> 3264[label="",style="dashed", color="magenta", weight=3]; 3206 -> 3265[label="",style="dashed", color="magenta", weight=3]; 3206 -> 3266[label="",style="dashed", color="magenta", weight=3]; 3206 -> 3267[label="",style="dashed", color="magenta", weight=3]; 4620[label="Neg (Succ vuz215)",fontsize=16,color="green",shape="box"];4621[label="vuz219",fontsize=16,color="green",shape="box"];4622[label="Neg (Succ vuz215)",fontsize=16,color="green",shape="box"];4623[label="Neg (Succ vuz215)",fontsize=16,color="green",shape="box"];4624[label="vuz220",fontsize=16,color="green",shape="box"];4625[label="vuz214",fontsize=16,color="green",shape="box"];4626[label="Neg (Succ vuz215)",fontsize=16,color="green",shape="box"];4627[label="vuz218",fontsize=16,color="green",shape="box"];4628[label="vuz218",fontsize=16,color="green",shape="box"];3212 -> 471[label="",style="dashed", color="red", weight=0]; 3212[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3212 -> 3283[label="",style="dashed", color="magenta", weight=3]; 3213[label="vuz124",fontsize=16,color="green",shape="box"];3214 -> 471[label="",style="dashed", color="red", weight=0]; 3214[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3214 -> 3284[label="",style="dashed", color="magenta", weight=3]; 3215 -> 471[label="",style="dashed", color="red", weight=0]; 3215[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3215 -> 3285[label="",style="dashed", color="magenta", weight=3]; 3216 -> 471[label="",style="dashed", color="red", weight=0]; 3216[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3216 -> 3286[label="",style="dashed", color="magenta", weight=3]; 3217[label="vuz126",fontsize=16,color="green",shape="box"];3218[label="vuz126",fontsize=16,color="green",shape="box"];3541[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal (Integer vuz60) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3541 -> 3547[label="",style="solid", color="black", weight=3]; 3542[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (compare (Integer vuz60) vuz187 /= LT)",fontsize=16,color="black",shape="box"];3542 -> 3548[label="",style="solid", color="black", weight=3]; 4629[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (`negate` Integer (Pos (Succ vuz207))) (not (compare (`negate` Integer (Pos (Succ vuz207))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (`negate` Integer (Pos (Succ vuz207))) (not (compare (`negate` Integer (Pos (Succ vuz207))) vuz210 == LT)))",fontsize=16,color="black",shape="box"];4629 -> 4657[label="",style="solid", color="black", weight=3]; 3261 -> 471[label="",style="dashed", color="red", weight=0]; 3261[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3261 -> 3348[label="",style="dashed", color="magenta", weight=3]; 3262[label="vuz124",fontsize=16,color="green",shape="box"];3263 -> 471[label="",style="dashed", color="red", weight=0]; 3263[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3263 -> 3349[label="",style="dashed", color="magenta", weight=3]; 3264 -> 471[label="",style="dashed", color="red", weight=0]; 3264[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3264 -> 3350[label="",style="dashed", color="magenta", weight=3]; 3265 -> 471[label="",style="dashed", color="red", weight=0]; 3265[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3265 -> 3351[label="",style="dashed", color="magenta", weight=3]; 3266[label="vuz126",fontsize=16,color="green",shape="box"];3267[label="vuz126",fontsize=16,color="green",shape="box"];3283[label="Neg Zero",fontsize=16,color="green",shape="box"];3284[label="Neg Zero",fontsize=16,color="green",shape="box"];3285[label="Neg Zero",fontsize=16,color="green",shape="box"];3286[label="Neg Zero",fontsize=16,color="green",shape="box"];3547[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal2 (Integer vuz60) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal2 (Integer vuz60) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3547 -> 3610[label="",style="solid", color="black", weight=3]; 3548[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (not (compare (Integer vuz60) vuz187 == LT))",fontsize=16,color="burlywood",shape="box"];5921[label="vuz187/Integer vuz1870",fontsize=10,color="white",style="solid",shape="box"];3548 -> 5921[label="",style="solid", color="burlywood", weight=9]; 5921 -> 3611[label="",style="solid", color="burlywood", weight=3]; 4657 -> 2884[label="",style="dashed", color="red", weight=0]; 4657[label="Integer vuz206 `quot` gcd0Gcd'1 (absReal1 (Integer (primNegInt (Pos (Succ vuz207)))) (not (compare (Integer (primNegInt (Pos (Succ vuz207)))) vuz210 == LT)) == vuz211) (abs (Integer vuz212)) (absReal1 (Integer (primNegInt (Pos (Succ vuz207)))) (not (compare (Integer (primNegInt (Pos (Succ vuz207)))) vuz210 == LT)))",fontsize=16,color="magenta"];4657 -> 4688[label="",style="dashed", color="magenta", weight=3]; 4657 -> 4689[label="",style="dashed", color="magenta", weight=3]; 4657 -> 4690[label="",style="dashed", color="magenta", weight=3]; 4657 -> 4691[label="",style="dashed", color="magenta", weight=3]; 4657 -> 4692[label="",style="dashed", color="magenta", weight=3]; 4657 -> 4693[label="",style="dashed", color="magenta", weight=3]; 4657 -> 4694[label="",style="dashed", color="magenta", weight=3]; 4657 -> 4695[label="",style="dashed", color="magenta", weight=3]; 4657 -> 4696[label="",style="dashed", color="magenta", weight=3]; 3348[label="Pos Zero",fontsize=16,color="green",shape="box"];3349[label="Pos Zero",fontsize=16,color="green",shape="box"];3350[label="Pos Zero",fontsize=16,color="green",shape="box"];3351[label="Pos Zero",fontsize=16,color="green",shape="box"];3610 -> 3631[label="",style="dashed", color="red", weight=0]; 3610[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (Integer vuz60 >= fromInt (Pos Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (Integer vuz60 >= fromInt (Pos Zero)) `rem` Integer vuz158)",fontsize=16,color="magenta"];3610 -> 3632[label="",style="dashed", color="magenta", weight=3]; 3610 -> 3633[label="",style="dashed", color="magenta", weight=3]; 3611[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (not (compare (Integer vuz60) (Integer vuz1870) == LT))",fontsize=16,color="black",shape="box"];3611 -> 3638[label="",style="solid", color="black", weight=3]; 4688 -> 471[label="",style="dashed", color="red", weight=0]; 4688[label="primNegInt (Pos (Succ vuz207))",fontsize=16,color="magenta"];4688 -> 4723[label="",style="dashed", color="magenta", weight=3]; 4689[label="vuz211",fontsize=16,color="green",shape="box"];4690 -> 471[label="",style="dashed", color="red", weight=0]; 4690[label="primNegInt (Pos (Succ vuz207))",fontsize=16,color="magenta"];4690 -> 4724[label="",style="dashed", color="magenta", weight=3]; 4691 -> 471[label="",style="dashed", color="red", weight=0]; 4691[label="primNegInt (Pos (Succ vuz207))",fontsize=16,color="magenta"];4691 -> 4725[label="",style="dashed", color="magenta", weight=3]; 4692[label="vuz212",fontsize=16,color="green",shape="box"];4693[label="vuz206",fontsize=16,color="green",shape="box"];4694 -> 471[label="",style="dashed", color="red", weight=0]; 4694[label="primNegInt (Pos (Succ vuz207))",fontsize=16,color="magenta"];4694 -> 4726[label="",style="dashed", color="magenta", weight=3]; 4695[label="vuz210",fontsize=16,color="green",shape="box"];4696[label="vuz210",fontsize=16,color="green",shape="box"];3632 -> 2031[label="",style="dashed", color="red", weight=0]; 3632[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];3633 -> 2031[label="",style="dashed", color="red", weight=0]; 3633[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];3631[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (Integer vuz60 >= vuz196) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (Integer vuz60 >= vuz195) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3631 -> 3639[label="",style="solid", color="black", weight=3]; 3638[label="Integer vuz59 `quot` absReal1 (Integer vuz60) (not (primCmpInt vuz60 vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5922[label="vuz60/Pos vuz600",fontsize=10,color="white",style="solid",shape="box"];3638 -> 5922[label="",style="solid", color="burlywood", weight=9]; 5922 -> 3679[label="",style="solid", color="burlywood", weight=3]; 5923[label="vuz60/Neg vuz600",fontsize=10,color="white",style="solid",shape="box"];3638 -> 5923[label="",style="solid", color="burlywood", weight=9]; 5923 -> 3680[label="",style="solid", color="burlywood", weight=3]; 4723[label="Pos (Succ vuz207)",fontsize=16,color="green",shape="box"];4724[label="Pos (Succ vuz207)",fontsize=16,color="green",shape="box"];4725[label="Pos (Succ vuz207)",fontsize=16,color="green",shape="box"];4726[label="Pos (Succ vuz207)",fontsize=16,color="green",shape="box"];3639[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (compare (Integer vuz60) vuz196 /= LT) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (compare (Integer vuz60) vuz196 /= LT) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3639 -> 3681[label="",style="solid", color="black", weight=3]; 3679[label="Integer vuz59 `quot` absReal1 (Integer (Pos vuz600)) (not (primCmpInt (Pos vuz600) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5924[label="vuz600/Succ vuz6000",fontsize=10,color="white",style="solid",shape="box"];3679 -> 5924[label="",style="solid", color="burlywood", weight=9]; 5924 -> 3736[label="",style="solid", color="burlywood", weight=3]; 5925[label="vuz600/Zero",fontsize=10,color="white",style="solid",shape="box"];3679 -> 5925[label="",style="solid", color="burlywood", weight=9]; 5925 -> 3737[label="",style="solid", color="burlywood", weight=3]; 3680[label="Integer vuz59 `quot` absReal1 (Integer (Neg vuz600)) (not (primCmpInt (Neg vuz600) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5926[label="vuz600/Succ vuz6000",fontsize=10,color="white",style="solid",shape="box"];3680 -> 5926[label="",style="solid", color="burlywood", weight=9]; 5926 -> 3738[label="",style="solid", color="burlywood", weight=3]; 5927[label="vuz600/Zero",fontsize=10,color="white",style="solid",shape="box"];3680 -> 5927[label="",style="solid", color="burlywood", weight=9]; 5927 -> 3739[label="",style="solid", color="burlywood", weight=3]; 3681[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (not (compare (Integer vuz60) vuz196 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (not (compare (Integer vuz60) vuz196 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5928[label="vuz196/Integer vuz1960",fontsize=10,color="white",style="solid",shape="box"];3681 -> 5928[label="",style="solid", color="burlywood", weight=9]; 5928 -> 3740[label="",style="solid", color="burlywood", weight=3]; 3736[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5929[label="vuz1870/Pos vuz18700",fontsize=10,color="white",style="solid",shape="box"];3736 -> 5929[label="",style="solid", color="burlywood", weight=9]; 5929 -> 3758[label="",style="solid", color="burlywood", weight=3]; 5930[label="vuz1870/Neg vuz18700",fontsize=10,color="white",style="solid",shape="box"];3736 -> 5930[label="",style="solid", color="burlywood", weight=9]; 5930 -> 3759[label="",style="solid", color="burlywood", weight=3]; 3737[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5931[label="vuz1870/Pos vuz18700",fontsize=10,color="white",style="solid",shape="box"];3737 -> 5931[label="",style="solid", color="burlywood", weight=9]; 5931 -> 3760[label="",style="solid", color="burlywood", weight=3]; 5932[label="vuz1870/Neg vuz18700",fontsize=10,color="white",style="solid",shape="box"];3737 -> 5932[label="",style="solid", color="burlywood", weight=9]; 5932 -> 3761[label="",style="solid", color="burlywood", weight=3]; 3738[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5933[label="vuz1870/Pos vuz18700",fontsize=10,color="white",style="solid",shape="box"];3738 -> 5933[label="",style="solid", color="burlywood", weight=9]; 5933 -> 3762[label="",style="solid", color="burlywood", weight=3]; 5934[label="vuz1870/Neg vuz18700",fontsize=10,color="white",style="solid",shape="box"];3738 -> 5934[label="",style="solid", color="burlywood", weight=9]; 5934 -> 3763[label="",style="solid", color="burlywood", weight=3]; 3739[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1870 == LT))",fontsize=16,color="burlywood",shape="box"];5935[label="vuz1870/Pos vuz18700",fontsize=10,color="white",style="solid",shape="box"];3739 -> 5935[label="",style="solid", color="burlywood", weight=9]; 5935 -> 3764[label="",style="solid", color="burlywood", weight=3]; 5936[label="vuz1870/Neg vuz18700",fontsize=10,color="white",style="solid",shape="box"];3739 -> 5936[label="",style="solid", color="burlywood", weight=9]; 5936 -> 3765[label="",style="solid", color="burlywood", weight=3]; 3740[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (not (compare (Integer vuz60) (Integer vuz1960) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (not (compare (Integer vuz60) (Integer vuz1960) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3740 -> 3766[label="",style="solid", color="black", weight=3]; 3758[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Pos vuz18700) == LT))",fontsize=16,color="black",shape="box"];3758 -> 3802[label="",style="solid", color="black", weight=3]; 3759[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Neg vuz18700) == LT))",fontsize=16,color="black",shape="box"];3759 -> 3803[label="",style="solid", color="black", weight=3]; 3760[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz18700) == LT))",fontsize=16,color="burlywood",shape="box"];5937[label="vuz18700/Succ vuz187000",fontsize=10,color="white",style="solid",shape="box"];3760 -> 5937[label="",style="solid", color="burlywood", weight=9]; 5937 -> 3804[label="",style="solid", color="burlywood", weight=3]; 5938[label="vuz18700/Zero",fontsize=10,color="white",style="solid",shape="box"];3760 -> 5938[label="",style="solid", color="burlywood", weight=9]; 5938 -> 3805[label="",style="solid", color="burlywood", weight=3]; 3761[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz18700) == LT))",fontsize=16,color="burlywood",shape="box"];5939[label="vuz18700/Succ vuz187000",fontsize=10,color="white",style="solid",shape="box"];3761 -> 5939[label="",style="solid", color="burlywood", weight=9]; 5939 -> 3806[label="",style="solid", color="burlywood", weight=3]; 5940[label="vuz18700/Zero",fontsize=10,color="white",style="solid",shape="box"];3761 -> 5940[label="",style="solid", color="burlywood", weight=9]; 5940 -> 3807[label="",style="solid", color="burlywood", weight=3]; 3762[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Pos vuz18700) == LT))",fontsize=16,color="black",shape="box"];3762 -> 3808[label="",style="solid", color="black", weight=3]; 3763[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Neg vuz18700) == LT))",fontsize=16,color="black",shape="box"];3763 -> 3809[label="",style="solid", color="black", weight=3]; 3764[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz18700) == LT))",fontsize=16,color="burlywood",shape="box"];5941[label="vuz18700/Succ vuz187000",fontsize=10,color="white",style="solid",shape="box"];3764 -> 5941[label="",style="solid", color="burlywood", weight=9]; 5941 -> 3810[label="",style="solid", color="burlywood", weight=3]; 5942[label="vuz18700/Zero",fontsize=10,color="white",style="solid",shape="box"];3764 -> 5942[label="",style="solid", color="burlywood", weight=9]; 5942 -> 3811[label="",style="solid", color="burlywood", weight=3]; 3765[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz18700) == LT))",fontsize=16,color="burlywood",shape="box"];5943[label="vuz18700/Succ vuz187000",fontsize=10,color="white",style="solid",shape="box"];3765 -> 5943[label="",style="solid", color="burlywood", weight=9]; 5943 -> 3812[label="",style="solid", color="burlywood", weight=3]; 5944[label="vuz18700/Zero",fontsize=10,color="white",style="solid",shape="box"];3765 -> 5944[label="",style="solid", color="burlywood", weight=9]; 5944 -> 3813[label="",style="solid", color="burlywood", weight=3]; 3766[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer vuz60) (not (primCmpInt vuz60 vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer vuz60) (not (primCmpInt vuz60 vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5945[label="vuz60/Pos vuz600",fontsize=10,color="white",style="solid",shape="box"];3766 -> 5945[label="",style="solid", color="burlywood", weight=9]; 5945 -> 3814[label="",style="solid", color="burlywood", weight=3]; 5946[label="vuz60/Neg vuz600",fontsize=10,color="white",style="solid",shape="box"];3766 -> 5946[label="",style="solid", color="burlywood", weight=9]; 5946 -> 3815[label="",style="solid", color="burlywood", weight=3]; 3802 -> 4994[label="",style="dashed", color="red", weight=0]; 3802[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpNat (Succ vuz6000) vuz18700 == LT))",fontsize=16,color="magenta"];3802 -> 4995[label="",style="dashed", color="magenta", weight=3]; 3802 -> 4996[label="",style="dashed", color="magenta", weight=3]; 3802 -> 4997[label="",style="dashed", color="magenta", weight=3]; 3802 -> 4998[label="",style="dashed", color="magenta", weight=3]; 3803[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not (GT == LT))",fontsize=16,color="black",shape="triangle"];3803 -> 3842[label="",style="solid", color="black", weight=3]; 3804[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz187000)) == LT))",fontsize=16,color="black",shape="box"];3804 -> 3843[label="",style="solid", color="black", weight=3]; 3805[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];3805 -> 3844[label="",style="solid", color="black", weight=3]; 3806[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz187000)) == LT))",fontsize=16,color="black",shape="box"];3806 -> 3845[label="",style="solid", color="black", weight=3]; 3807[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];3807 -> 3846[label="",style="solid", color="black", weight=3]; 3808[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (LT == LT))",fontsize=16,color="black",shape="triangle"];3808 -> 3847[label="",style="solid", color="black", weight=3]; 3809 -> 5039[label="",style="dashed", color="red", weight=0]; 3809[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpNat vuz18700 (Succ vuz6000) == LT))",fontsize=16,color="magenta"];3809 -> 5040[label="",style="dashed", color="magenta", weight=3]; 3809 -> 5041[label="",style="dashed", color="magenta", weight=3]; 3809 -> 5042[label="",style="dashed", color="magenta", weight=3]; 3809 -> 5043[label="",style="dashed", color="magenta", weight=3]; 3810[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz187000)) == LT))",fontsize=16,color="black",shape="box"];3810 -> 3850[label="",style="solid", color="black", weight=3]; 3811[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];3811 -> 3851[label="",style="solid", color="black", weight=3]; 3812[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz187000)) == LT))",fontsize=16,color="black",shape="box"];3812 -> 3852[label="",style="solid", color="black", weight=3]; 3813[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];3813 -> 3853[label="",style="solid", color="black", weight=3]; 3814[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos vuz600)) (not (primCmpInt (Pos vuz600) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos vuz600)) (not (primCmpInt (Pos vuz600) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5947[label="vuz600/Succ vuz6000",fontsize=10,color="white",style="solid",shape="box"];3814 -> 5947[label="",style="solid", color="burlywood", weight=9]; 5947 -> 3854[label="",style="solid", color="burlywood", weight=3]; 5948[label="vuz600/Zero",fontsize=10,color="white",style="solid",shape="box"];3814 -> 5948[label="",style="solid", color="burlywood", weight=9]; 5948 -> 3855[label="",style="solid", color="burlywood", weight=3]; 3815[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg vuz600)) (not (primCmpInt (Neg vuz600) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg vuz600)) (not (primCmpInt (Neg vuz600) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5949[label="vuz600/Succ vuz6000",fontsize=10,color="white",style="solid",shape="box"];3815 -> 5949[label="",style="solid", color="burlywood", weight=9]; 5949 -> 3856[label="",style="solid", color="burlywood", weight=3]; 5950[label="vuz600/Zero",fontsize=10,color="white",style="solid",shape="box"];3815 -> 5950[label="",style="solid", color="burlywood", weight=9]; 5950 -> 3857[label="",style="solid", color="burlywood", weight=3]; 4995[label="vuz18700",fontsize=16,color="green",shape="box"];4996[label="vuz6000",fontsize=16,color="green",shape="box"];4997[label="Succ vuz6000",fontsize=16,color="green",shape="box"];4998[label="vuz59",fontsize=16,color="green",shape="box"];4994[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat vuz238 vuz239 == LT))",fontsize=16,color="burlywood",shape="triangle"];5951[label="vuz238/Succ vuz2380",fontsize=10,color="white",style="solid",shape="box"];4994 -> 5951[label="",style="solid", color="burlywood", weight=9]; 5951 -> 5035[label="",style="solid", color="burlywood", weight=3]; 5952[label="vuz238/Zero",fontsize=10,color="white",style="solid",shape="box"];4994 -> 5952[label="",style="solid", color="burlywood", weight=9]; 5952 -> 5036[label="",style="solid", color="burlywood", weight=3]; 3842[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) (not False)",fontsize=16,color="black",shape="triangle"];3842 -> 3873[label="",style="solid", color="black", weight=3]; 3843[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz187000) == LT))",fontsize=16,color="black",shape="box"];3843 -> 3874[label="",style="solid", color="black", weight=3]; 3844[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];3844 -> 3875[label="",style="solid", color="black", weight=3]; 3845[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (GT == LT))",fontsize=16,color="black",shape="box"];3845 -> 3876[label="",style="solid", color="black", weight=3]; 3846 -> 3844[label="",style="dashed", color="red", weight=0]; 3846[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="magenta"];3847[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) (not True)",fontsize=16,color="black",shape="box"];3847 -> 3877[label="",style="solid", color="black", weight=3]; 5040[label="vuz18700",fontsize=16,color="green",shape="box"];5041[label="vuz59",fontsize=16,color="green",shape="box"];5042[label="vuz6000",fontsize=16,color="green",shape="box"];5043[label="Succ vuz6000",fontsize=16,color="green",shape="box"];5039[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat vuz243 vuz244 == LT))",fontsize=16,color="burlywood",shape="triangle"];5953[label="vuz243/Succ vuz2430",fontsize=10,color="white",style="solid",shape="box"];5039 -> 5953[label="",style="solid", color="burlywood", weight=9]; 5953 -> 5080[label="",style="solid", color="burlywood", weight=3]; 5954[label="vuz243/Zero",fontsize=10,color="white",style="solid",shape="box"];5039 -> 5954[label="",style="solid", color="burlywood", weight=9]; 5954 -> 5081[label="",style="solid", color="burlywood", weight=3]; 3850[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (LT == LT))",fontsize=16,color="black",shape="box"];3850 -> 3880[label="",style="solid", color="black", weight=3]; 3851[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];3851 -> 3881[label="",style="solid", color="black", weight=3]; 3852[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz187000) Zero == LT))",fontsize=16,color="black",shape="box"];3852 -> 3882[label="",style="solid", color="black", weight=3]; 3853 -> 3851[label="",style="dashed", color="red", weight=0]; 3853[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="magenta"];3854[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5955[label="vuz1960/Pos vuz19600",fontsize=10,color="white",style="solid",shape="box"];3854 -> 5955[label="",style="solid", color="burlywood", weight=9]; 5955 -> 3883[label="",style="solid", color="burlywood", weight=3]; 5956[label="vuz1960/Neg vuz19600",fontsize=10,color="white",style="solid",shape="box"];3854 -> 5956[label="",style="solid", color="burlywood", weight=9]; 5956 -> 3884[label="",style="solid", color="burlywood", weight=3]; 3855[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5957[label="vuz1960/Pos vuz19600",fontsize=10,color="white",style="solid",shape="box"];3855 -> 5957[label="",style="solid", color="burlywood", weight=9]; 5957 -> 3885[label="",style="solid", color="burlywood", weight=3]; 5958[label="vuz1960/Neg vuz19600",fontsize=10,color="white",style="solid",shape="box"];3855 -> 5958[label="",style="solid", color="burlywood", weight=9]; 5958 -> 3886[label="",style="solid", color="burlywood", weight=3]; 3856[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5959[label="vuz1960/Pos vuz19600",fontsize=10,color="white",style="solid",shape="box"];3856 -> 5959[label="",style="solid", color="burlywood", weight=9]; 5959 -> 3887[label="",style="solid", color="burlywood", weight=3]; 5960[label="vuz1960/Neg vuz19600",fontsize=10,color="white",style="solid",shape="box"];3856 -> 5960[label="",style="solid", color="burlywood", weight=9]; 5960 -> 3888[label="",style="solid", color="burlywood", weight=3]; 3857[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1960 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1960 == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5961[label="vuz1960/Pos vuz19600",fontsize=10,color="white",style="solid",shape="box"];3857 -> 5961[label="",style="solid", color="burlywood", weight=9]; 5961 -> 3889[label="",style="solid", color="burlywood", weight=3]; 5962[label="vuz1960/Neg vuz19600",fontsize=10,color="white",style="solid",shape="box"];3857 -> 5962[label="",style="solid", color="burlywood", weight=9]; 5962 -> 3890[label="",style="solid", color="burlywood", weight=3]; 5035[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat (Succ vuz2380) vuz239 == LT))",fontsize=16,color="burlywood",shape="box"];5963[label="vuz239/Succ vuz2390",fontsize=10,color="white",style="solid",shape="box"];5035 -> 5963[label="",style="solid", color="burlywood", weight=9]; 5963 -> 5082[label="",style="solid", color="burlywood", weight=3]; 5964[label="vuz239/Zero",fontsize=10,color="white",style="solid",shape="box"];5035 -> 5964[label="",style="solid", color="burlywood", weight=9]; 5964 -> 5083[label="",style="solid", color="burlywood", weight=3]; 5036[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat Zero vuz239 == LT))",fontsize=16,color="burlywood",shape="box"];5965[label="vuz239/Succ vuz2390",fontsize=10,color="white",style="solid",shape="box"];5036 -> 5965[label="",style="solid", color="burlywood", weight=9]; 5965 -> 5084[label="",style="solid", color="burlywood", weight=3]; 5966[label="vuz239/Zero",fontsize=10,color="white",style="solid",shape="box"];5036 -> 5966[label="",style="solid", color="burlywood", weight=9]; 5966 -> 5085[label="",style="solid", color="burlywood", weight=3]; 3873[label="Integer vuz59 `quot` absReal1 (Integer (Pos (Succ vuz6000))) True",fontsize=16,color="black",shape="box"];3873 -> 3930[label="",style="solid", color="black", weight=3]; 3874[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not (LT == LT))",fontsize=16,color="black",shape="box"];3874 -> 3931[label="",style="solid", color="black", weight=3]; 3875[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="black",shape="triangle"];3875 -> 3932[label="",style="solid", color="black", weight=3]; 3876 -> 3875[label="",style="dashed", color="red", weight=0]; 3876[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="magenta"];3877[label="Integer vuz59 `quot` absReal1 (Integer (Neg (Succ vuz6000))) False",fontsize=16,color="black",shape="box"];3877 -> 3933[label="",style="solid", color="black", weight=3]; 5080[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat (Succ vuz2430) vuz244 == LT))",fontsize=16,color="burlywood",shape="box"];5967[label="vuz244/Succ vuz2440",fontsize=10,color="white",style="solid",shape="box"];5080 -> 5967[label="",style="solid", color="burlywood", weight=9]; 5967 -> 5101[label="",style="solid", color="burlywood", weight=3]; 5968[label="vuz244/Zero",fontsize=10,color="white",style="solid",shape="box"];5080 -> 5968[label="",style="solid", color="burlywood", weight=9]; 5968 -> 5102[label="",style="solid", color="burlywood", weight=3]; 5081[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat Zero vuz244 == LT))",fontsize=16,color="burlywood",shape="box"];5969[label="vuz244/Succ vuz2440",fontsize=10,color="white",style="solid",shape="box"];5081 -> 5969[label="",style="solid", color="burlywood", weight=9]; 5969 -> 5103[label="",style="solid", color="burlywood", weight=3]; 5970[label="vuz244/Zero",fontsize=10,color="white",style="solid",shape="box"];5081 -> 5970[label="",style="solid", color="burlywood", weight=9]; 5970 -> 5104[label="",style="solid", color="burlywood", weight=3]; 3880[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not True)",fontsize=16,color="black",shape="box"];3880 -> 3936[label="",style="solid", color="black", weight=3]; 3881[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="black",shape="triangle"];3881 -> 3937[label="",style="solid", color="black", weight=3]; 3882[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not (GT == LT))",fontsize=16,color="black",shape="box"];3882 -> 3938[label="",style="solid", color="black", weight=3]; 3883[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Pos vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Pos vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3883 -> 3939[label="",style="solid", color="black", weight=3]; 3884[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Neg vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpInt (Pos (Succ vuz6000)) (Neg vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3884 -> 3940[label="",style="solid", color="black", weight=3]; 3885[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5971[label="vuz19600/Succ vuz196000",fontsize=10,color="white",style="solid",shape="box"];3885 -> 5971[label="",style="solid", color="burlywood", weight=9]; 5971 -> 3941[label="",style="solid", color="burlywood", weight=3]; 5972[label="vuz19600/Zero",fontsize=10,color="white",style="solid",shape="box"];3885 -> 5972[label="",style="solid", color="burlywood", weight=9]; 5972 -> 3942[label="",style="solid", color="burlywood", weight=3]; 3886[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5973[label="vuz19600/Succ vuz196000",fontsize=10,color="white",style="solid",shape="box"];3886 -> 5973[label="",style="solid", color="burlywood", weight=9]; 5973 -> 3943[label="",style="solid", color="burlywood", weight=3]; 5974[label="vuz19600/Zero",fontsize=10,color="white",style="solid",shape="box"];3886 -> 5974[label="",style="solid", color="burlywood", weight=9]; 5974 -> 3944[label="",style="solid", color="burlywood", weight=3]; 3887[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Pos vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Pos vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3887 -> 3945[label="",style="solid", color="black", weight=3]; 3888[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Neg vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpInt (Neg (Succ vuz6000)) (Neg vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3888 -> 3946[label="",style="solid", color="black", weight=3]; 3889[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5975[label="vuz19600/Succ vuz196000",fontsize=10,color="white",style="solid",shape="box"];3889 -> 5975[label="",style="solid", color="burlywood", weight=9]; 5975 -> 3947[label="",style="solid", color="burlywood", weight=3]; 5976[label="vuz19600/Zero",fontsize=10,color="white",style="solid",shape="box"];3889 -> 5976[label="",style="solid", color="burlywood", weight=9]; 5976 -> 3948[label="",style="solid", color="burlywood", weight=3]; 3890[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz19600) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz19600) == LT)) `rem` Integer vuz158)",fontsize=16,color="burlywood",shape="box"];5977[label="vuz19600/Succ vuz196000",fontsize=10,color="white",style="solid",shape="box"];3890 -> 5977[label="",style="solid", color="burlywood", weight=9]; 5977 -> 3949[label="",style="solid", color="burlywood", weight=3]; 5978[label="vuz19600/Zero",fontsize=10,color="white",style="solid",shape="box"];3890 -> 5978[label="",style="solid", color="burlywood", weight=9]; 5978 -> 3950[label="",style="solid", color="burlywood", weight=3]; 5082[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat (Succ vuz2380) (Succ vuz2390) == LT))",fontsize=16,color="black",shape="box"];5082 -> 5105[label="",style="solid", color="black", weight=3]; 5083[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat (Succ vuz2380) Zero == LT))",fontsize=16,color="black",shape="box"];5083 -> 5106[label="",style="solid", color="black", weight=3]; 5084[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat Zero (Succ vuz2390) == LT))",fontsize=16,color="black",shape="box"];5084 -> 5107[label="",style="solid", color="black", weight=3]; 5085[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];5085 -> 5108[label="",style="solid", color="black", weight=3]; 3930 -> 4130[label="",style="dashed", color="red", weight=0]; 3930[label="Integer vuz59 `quot` Integer (Pos (Succ vuz6000))",fontsize=16,color="magenta"];3930 -> 4131[label="",style="dashed", color="magenta", weight=3]; 3931[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) (not True)",fontsize=16,color="black",shape="box"];3931 -> 3976[label="",style="solid", color="black", weight=3]; 3932[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];3932 -> 3977[label="",style="solid", color="black", weight=3]; 3933[label="Integer vuz59 `quot` absReal0 (Integer (Neg (Succ vuz6000))) otherwise",fontsize=16,color="black",shape="box"];3933 -> 3978[label="",style="solid", color="black", weight=3]; 5101[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat (Succ vuz2430) (Succ vuz2440) == LT))",fontsize=16,color="black",shape="box"];5101 -> 5123[label="",style="solid", color="black", weight=3]; 5102[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat (Succ vuz2430) Zero == LT))",fontsize=16,color="black",shape="box"];5102 -> 5124[label="",style="solid", color="black", weight=3]; 5103[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat Zero (Succ vuz2440) == LT))",fontsize=16,color="black",shape="box"];5103 -> 5125[label="",style="solid", color="black", weight=3]; 5104[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];5104 -> 5126[label="",style="solid", color="black", weight=3]; 3936[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) False",fontsize=16,color="black",shape="box"];3936 -> 3983[label="",style="solid", color="black", weight=3]; 3937[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];3937 -> 3984[label="",style="solid", color="black", weight=3]; 3938 -> 3881[label="",style="dashed", color="red", weight=0]; 3938[label="Integer vuz59 `quot` absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="magenta"];3939 -> 5153[label="",style="dashed", color="red", weight=0]; 3939[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpNat (Succ vuz6000) vuz19600 == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (primCmpNat (Succ vuz6000) vuz19600 == LT)) `rem` Integer vuz158)",fontsize=16,color="magenta"];3939 -> 5154[label="",style="dashed", color="magenta", weight=3]; 3939 -> 5155[label="",style="dashed", color="magenta", weight=3]; 3939 -> 5156[label="",style="dashed", color="magenta", weight=3]; 3939 -> 5157[label="",style="dashed", color="magenta", weight=3]; 3939 -> 5158[label="",style="dashed", color="magenta", weight=3]; 3939 -> 5159[label="",style="dashed", color="magenta", weight=3]; 3940[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not (GT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not (GT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3940 -> 3987[label="",style="solid", color="black", weight=3]; 3941[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz196000)) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz196000)) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3941 -> 3988[label="",style="solid", color="black", weight=3]; 3942[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3942 -> 3989[label="",style="solid", color="black", weight=3]; 3943[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz196000)) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz196000)) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3943 -> 3990[label="",style="solid", color="black", weight=3]; 3944[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3944 -> 3991[label="",style="solid", color="black", weight=3]; 3945[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (LT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (LT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3945 -> 3992[label="",style="solid", color="black", weight=3]; 3946 -> 5218[label="",style="dashed", color="red", weight=0]; 3946[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpNat vuz19600 (Succ vuz6000) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not (primCmpNat vuz19600 (Succ vuz6000) == LT)) `rem` Integer vuz158)",fontsize=16,color="magenta"];3946 -> 5219[label="",style="dashed", color="magenta", weight=3]; 3946 -> 5220[label="",style="dashed", color="magenta", weight=3]; 3946 -> 5221[label="",style="dashed", color="magenta", weight=3]; 3946 -> 5222[label="",style="dashed", color="magenta", weight=3]; 3946 -> 5223[label="",style="dashed", color="magenta", weight=3]; 3946 -> 5224[label="",style="dashed", color="magenta", weight=3]; 3947[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz196000)) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz196000)) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3947 -> 3995[label="",style="solid", color="black", weight=3]; 3948[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3948 -> 3996[label="",style="solid", color="black", weight=3]; 3949[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz196000)) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz196000)) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3949 -> 3997[label="",style="solid", color="black", weight=3]; 3950[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3950 -> 3998[label="",style="solid", color="black", weight=3]; 5105 -> 4994[label="",style="dashed", color="red", weight=0]; 5105[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (primCmpNat vuz2380 vuz2390 == LT))",fontsize=16,color="magenta"];5105 -> 5127[label="",style="dashed", color="magenta", weight=3]; 5105 -> 5128[label="",style="dashed", color="magenta", weight=3]; 5106 -> 3803[label="",style="dashed", color="red", weight=0]; 5106[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (GT == LT))",fontsize=16,color="magenta"];5106 -> 5129[label="",style="dashed", color="magenta", weight=3]; 5106 -> 5130[label="",style="dashed", color="magenta", weight=3]; 5107[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (LT == LT))",fontsize=16,color="black",shape="box"];5107 -> 5131[label="",style="solid", color="black", weight=3]; 5108[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not (EQ == LT))",fontsize=16,color="black",shape="box"];5108 -> 5132[label="",style="solid", color="black", weight=3]; 4131[label="Pos (Succ vuz6000)",fontsize=16,color="green",shape="box"];4130[label="Integer vuz59 `quot` Integer vuz201",fontsize=16,color="black",shape="triangle"];4130 -> 4135[label="",style="solid", color="black", weight=3]; 3976[label="Integer vuz59 `quot` absReal1 (Integer (Pos Zero)) False",fontsize=16,color="black",shape="box"];3976 -> 4020[label="",style="solid", color="black", weight=3]; 3977 -> 4130[label="",style="dashed", color="red", weight=0]; 3977[label="Integer vuz59 `quot` Integer (Pos Zero)",fontsize=16,color="magenta"];3977 -> 4132[label="",style="dashed", color="magenta", weight=3]; 3978[label="Integer vuz59 `quot` absReal0 (Integer (Neg (Succ vuz6000))) True",fontsize=16,color="black",shape="box"];3978 -> 4022[label="",style="solid", color="black", weight=3]; 5123 -> 5039[label="",style="dashed", color="red", weight=0]; 5123[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (primCmpNat vuz2430 vuz2440 == LT))",fontsize=16,color="magenta"];5123 -> 5144[label="",style="dashed", color="magenta", weight=3]; 5123 -> 5145[label="",style="dashed", color="magenta", weight=3]; 5124[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (GT == LT))",fontsize=16,color="black",shape="box"];5124 -> 5146[label="",style="solid", color="black", weight=3]; 5125 -> 3808[label="",style="dashed", color="red", weight=0]; 5125[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (LT == LT))",fontsize=16,color="magenta"];5125 -> 5147[label="",style="dashed", color="magenta", weight=3]; 5125 -> 5148[label="",style="dashed", color="magenta", weight=3]; 5126[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not (EQ == LT))",fontsize=16,color="black",shape="box"];5126 -> 5149[label="",style="solid", color="black", weight=3]; 3983[label="Integer vuz59 `quot` absReal0 (Integer (Neg Zero)) otherwise",fontsize=16,color="black",shape="box"];3983 -> 4027[label="",style="solid", color="black", weight=3]; 3984 -> 4130[label="",style="dashed", color="red", weight=0]; 3984[label="Integer vuz59 `quot` Integer (Neg Zero)",fontsize=16,color="magenta"];3984 -> 4133[label="",style="dashed", color="magenta", weight=3]; 5154[label="vuz59",fontsize=16,color="green",shape="box"];5155[label="vuz6000",fontsize=16,color="green",shape="box"];5156[label="vuz158",fontsize=16,color="green",shape="box"];5157[label="vuz186",fontsize=16,color="green",shape="box"];5158[label="Succ vuz6000",fontsize=16,color="green",shape="box"];5159[label="vuz19600",fontsize=16,color="green",shape="box"];5153[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat vuz248 vuz249 == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat vuz248 vuz249 == LT)) `rem` Integer vuz250)",fontsize=16,color="burlywood",shape="triangle"];5979[label="vuz248/Succ vuz2480",fontsize=10,color="white",style="solid",shape="box"];5153 -> 5979[label="",style="solid", color="burlywood", weight=9]; 5979 -> 5214[label="",style="solid", color="burlywood", weight=3]; 5980[label="vuz248/Zero",fontsize=10,color="white",style="solid",shape="box"];5153 -> 5980[label="",style="solid", color="burlywood", weight=9]; 5980 -> 5215[label="",style="solid", color="burlywood", weight=3]; 3987[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) (not False) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3987 -> 4031[label="",style="solid", color="black", weight=3]; 3988[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz196000) == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz196000) == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3988 -> 4032[label="",style="solid", color="black", weight=3]; 3989[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3989 -> 4033[label="",style="solid", color="black", weight=3]; 3990[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (GT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (GT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3990 -> 4034[label="",style="solid", color="black", weight=3]; 3991 -> 3989[label="",style="dashed", color="red", weight=0]; 3991[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz158)",fontsize=16,color="magenta"];3992[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) (not True) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) (not True) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3992 -> 4035[label="",style="solid", color="black", weight=3]; 5219[label="vuz6000",fontsize=16,color="green",shape="box"];5220[label="vuz186",fontsize=16,color="green",shape="box"];5221[label="vuz158",fontsize=16,color="green",shape="box"];5222[label="Succ vuz6000",fontsize=16,color="green",shape="box"];5223[label="vuz59",fontsize=16,color="green",shape="box"];5224[label="vuz19600",fontsize=16,color="green",shape="box"];5218[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat vuz255 vuz256 == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat vuz255 vuz256 == LT)) `rem` Integer vuz257)",fontsize=16,color="burlywood",shape="triangle"];5981[label="vuz255/Succ vuz2550",fontsize=10,color="white",style="solid",shape="box"];5218 -> 5981[label="",style="solid", color="burlywood", weight=9]; 5981 -> 5279[label="",style="solid", color="burlywood", weight=3]; 5982[label="vuz255/Zero",fontsize=10,color="white",style="solid",shape="box"];5218 -> 5982[label="",style="solid", color="burlywood", weight=9]; 5982 -> 5280[label="",style="solid", color="burlywood", weight=3]; 3995[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (LT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (LT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3995 -> 4038[label="",style="solid", color="black", weight=3]; 3996[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];3996 -> 4039[label="",style="solid", color="black", weight=3]; 3997[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz196000) Zero == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz196000) Zero == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];3997 -> 4040[label="",style="solid", color="black", weight=3]; 3998 -> 3996[label="",style="dashed", color="red", weight=0]; 3998[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz158)",fontsize=16,color="magenta"];5127[label="vuz2390",fontsize=16,color="green",shape="box"];5128[label="vuz2380",fontsize=16,color="green",shape="box"];5129[label="vuz236",fontsize=16,color="green",shape="box"];5130[label="vuz237",fontsize=16,color="green",shape="box"];5131[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not True)",fontsize=16,color="black",shape="box"];5131 -> 5150[label="",style="solid", color="black", weight=3]; 5132 -> 3842[label="",style="dashed", color="red", weight=0]; 5132[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) (not False)",fontsize=16,color="magenta"];5132 -> 5151[label="",style="dashed", color="magenta", weight=3]; 5132 -> 5152[label="",style="dashed", color="magenta", weight=3]; 4135[label="Integer (primQuotInt vuz59 vuz201)",fontsize=16,color="green",shape="box"];4135 -> 4174[label="",style="dashed", color="green", weight=3]; 4020[label="Integer vuz59 `quot` absReal0 (Integer (Pos Zero)) otherwise",fontsize=16,color="black",shape="box"];4020 -> 4079[label="",style="solid", color="black", weight=3]; 4132[label="Pos Zero",fontsize=16,color="green",shape="box"];4022[label="Integer vuz59 `quot` (`negate` Integer (Neg (Succ vuz6000)))",fontsize=16,color="black",shape="box"];4022 -> 4081[label="",style="solid", color="black", weight=3]; 5144[label="vuz2430",fontsize=16,color="green",shape="box"];5145[label="vuz2440",fontsize=16,color="green",shape="box"];5146[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not False)",fontsize=16,color="black",shape="triangle"];5146 -> 5216[label="",style="solid", color="black", weight=3]; 5147[label="vuz242",fontsize=16,color="green",shape="box"];5148[label="vuz241",fontsize=16,color="green",shape="box"];5149 -> 5146[label="",style="dashed", color="red", weight=0]; 5149[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) (not False)",fontsize=16,color="magenta"];4027[label="Integer vuz59 `quot` absReal0 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];4027 -> 4087[label="",style="solid", color="black", weight=3]; 4133[label="Neg Zero",fontsize=16,color="green",shape="box"];5214[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) vuz249 == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) vuz249 == LT)) `rem` Integer vuz250)",fontsize=16,color="burlywood",shape="box"];5983[label="vuz249/Succ vuz2490",fontsize=10,color="white",style="solid",shape="box"];5214 -> 5983[label="",style="solid", color="burlywood", weight=9]; 5983 -> 5281[label="",style="solid", color="burlywood", weight=3]; 5984[label="vuz249/Zero",fontsize=10,color="white",style="solid",shape="box"];5214 -> 5984[label="",style="solid", color="burlywood", weight=9]; 5984 -> 5282[label="",style="solid", color="burlywood", weight=3]; 5215[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero vuz249 == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero vuz249 == LT)) `rem` Integer vuz250)",fontsize=16,color="burlywood",shape="box"];5985[label="vuz249/Succ vuz2490",fontsize=10,color="white",style="solid",shape="box"];5215 -> 5985[label="",style="solid", color="burlywood", weight=9]; 5985 -> 5283[label="",style="solid", color="burlywood", weight=3]; 5986[label="vuz249/Zero",fontsize=10,color="white",style="solid",shape="box"];5215 -> 5986[label="",style="solid", color="burlywood", weight=9]; 5986 -> 5284[label="",style="solid", color="burlywood", weight=3]; 4031[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz6000))) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos (Succ vuz6000))) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4031 -> 4091[label="",style="solid", color="black", weight=3]; 4032[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (LT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not (LT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4032 -> 4092[label="",style="solid", color="black", weight=3]; 4033[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];4033 -> 4093[label="",style="solid", color="black", weight=3]; 4034 -> 4033[label="",style="dashed", color="red", weight=0]; 4034[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz158)",fontsize=16,color="magenta"];4035[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz6000))) False `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg (Succ vuz6000))) False `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4035 -> 4094[label="",style="solid", color="black", weight=3]; 5279[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) vuz256 == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) vuz256 == LT)) `rem` Integer vuz257)",fontsize=16,color="burlywood",shape="box"];5987[label="vuz256/Succ vuz2560",fontsize=10,color="white",style="solid",shape="box"];5279 -> 5987[label="",style="solid", color="burlywood", weight=9]; 5987 -> 5287[label="",style="solid", color="burlywood", weight=3]; 5988[label="vuz256/Zero",fontsize=10,color="white",style="solid",shape="box"];5279 -> 5988[label="",style="solid", color="burlywood", weight=9]; 5988 -> 5288[label="",style="solid", color="burlywood", weight=3]; 5280[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero vuz256 == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero vuz256 == LT)) `rem` Integer vuz257)",fontsize=16,color="burlywood",shape="box"];5989[label="vuz256/Succ vuz2560",fontsize=10,color="white",style="solid",shape="box"];5280 -> 5989[label="",style="solid", color="burlywood", weight=9]; 5989 -> 5289[label="",style="solid", color="burlywood", weight=3]; 5990[label="vuz256/Zero",fontsize=10,color="white",style="solid",shape="box"];5280 -> 5990[label="",style="solid", color="burlywood", weight=9]; 5990 -> 5290[label="",style="solid", color="burlywood", weight=3]; 4038[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not True) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not True) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4038 -> 4097[label="",style="solid", color="black", weight=3]; 4039[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];4039 -> 4098[label="",style="solid", color="black", weight=3]; 4040[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (GT == LT)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not (GT == LT)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4040 -> 4099[label="",style="solid", color="black", weight=3]; 5150[label="Integer vuz236 `quot` absReal1 (Integer (Pos (Succ vuz237))) False",fontsize=16,color="black",shape="box"];5150 -> 5217[label="",style="solid", color="black", weight=3]; 5151[label="vuz236",fontsize=16,color="green",shape="box"];5152[label="vuz237",fontsize=16,color="green",shape="box"];4174[label="primQuotInt vuz59 vuz201",fontsize=16,color="burlywood",shape="box"];5991[label="vuz59/Pos vuz590",fontsize=10,color="white",style="solid",shape="box"];4174 -> 5991[label="",style="solid", color="burlywood", weight=9]; 5991 -> 4188[label="",style="solid", color="burlywood", weight=3]; 5992[label="vuz59/Neg vuz590",fontsize=10,color="white",style="solid",shape="box"];4174 -> 5992[label="",style="solid", color="burlywood", weight=9]; 5992 -> 4189[label="",style="solid", color="burlywood", weight=3]; 4079[label="Integer vuz59 `quot` absReal0 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];4079 -> 4127[label="",style="solid", color="black", weight=3]; 4081 -> 4130[label="",style="dashed", color="red", weight=0]; 4081[label="Integer vuz59 `quot` Integer (primNegInt (Neg (Succ vuz6000)))",fontsize=16,color="magenta"];4081 -> 4134[label="",style="dashed", color="magenta", weight=3]; 5216[label="Integer vuz241 `quot` absReal1 (Integer (Neg (Succ vuz242))) True",fontsize=16,color="black",shape="box"];5216 -> 5285[label="",style="solid", color="black", weight=3]; 4087[label="Integer vuz59 `quot` (`negate` Integer (Neg Zero))",fontsize=16,color="black",shape="box"];4087 -> 4141[label="",style="solid", color="black", weight=3]; 5281[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) (Succ vuz2490) == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) (Succ vuz2490) == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5281 -> 5291[label="",style="solid", color="black", weight=3]; 5282[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) Zero == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat (Succ vuz2480) Zero == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5282 -> 5292[label="",style="solid", color="black", weight=3]; 5283[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero (Succ vuz2490) == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero (Succ vuz2490) == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5283 -> 5293[label="",style="solid", color="black", weight=3]; 5284[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5284 -> 5294[label="",style="solid", color="black", weight=3]; 4091 -> 4426[label="",style="dashed", color="red", weight=0]; 4091[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (Pos (Succ vuz6000)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (Pos (Succ vuz6000)) `rem` Integer vuz158)",fontsize=16,color="magenta"];4091 -> 4427[label="",style="dashed", color="magenta", weight=3]; 4091 -> 4428[label="",style="dashed", color="magenta", weight=3]; 4092[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not True) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) (not True) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4092 -> 4147[label="",style="solid", color="black", weight=3]; 4093[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4093 -> 4148[label="",style="solid", color="black", weight=3]; 4094[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz6000))) otherwise `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Neg (Succ vuz6000))) otherwise `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4094 -> 4149[label="",style="solid", color="black", weight=3]; 5287[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) (Succ vuz2560) == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) (Succ vuz2560) == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5287 -> 5298[label="",style="solid", color="black", weight=3]; 5288[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) Zero == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat (Succ vuz2550) Zero == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5288 -> 5299[label="",style="solid", color="black", weight=3]; 5289[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero (Succ vuz2560) == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero (Succ vuz2560) == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5289 -> 5300[label="",style="solid", color="black", weight=3]; 5290[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5290 -> 5301[label="",style="solid", color="black", weight=3]; 4097[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) False `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) False `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4097 -> 4154[label="",style="solid", color="black", weight=3]; 4098[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4098 -> 4155[label="",style="solid", color="black", weight=3]; 4099 -> 4039[label="",style="dashed", color="red", weight=0]; 4099[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz158)",fontsize=16,color="magenta"];5217[label="Integer vuz236 `quot` absReal0 (Integer (Pos (Succ vuz237))) otherwise",fontsize=16,color="black",shape="box"];5217 -> 5286[label="",style="solid", color="black", weight=3]; 4188[label="primQuotInt (Pos vuz590) vuz201",fontsize=16,color="burlywood",shape="box"];5993[label="vuz201/Pos vuz2010",fontsize=10,color="white",style="solid",shape="box"];4188 -> 5993[label="",style="solid", color="burlywood", weight=9]; 5993 -> 4297[label="",style="solid", color="burlywood", weight=3]; 5994[label="vuz201/Neg vuz2010",fontsize=10,color="white",style="solid",shape="box"];4188 -> 5994[label="",style="solid", color="burlywood", weight=9]; 5994 -> 4298[label="",style="solid", color="burlywood", weight=3]; 4189[label="primQuotInt (Neg vuz590) vuz201",fontsize=16,color="burlywood",shape="box"];5995[label="vuz201/Pos vuz2010",fontsize=10,color="white",style="solid",shape="box"];4189 -> 5995[label="",style="solid", color="burlywood", weight=9]; 5995 -> 4299[label="",style="solid", color="burlywood", weight=3]; 5996[label="vuz201/Neg vuz2010",fontsize=10,color="white",style="solid",shape="box"];4189 -> 5996[label="",style="solid", color="burlywood", weight=9]; 5996 -> 4300[label="",style="solid", color="burlywood", weight=3]; 4127[label="Integer vuz59 `quot` (`negate` Integer (Pos Zero))",fontsize=16,color="black",shape="box"];4127 -> 4161[label="",style="solid", color="black", weight=3]; 4134 -> 471[label="",style="dashed", color="red", weight=0]; 4134[label="primNegInt (Neg (Succ vuz6000))",fontsize=16,color="magenta"];4134 -> 4162[label="",style="dashed", color="magenta", weight=3]; 5285 -> 4130[label="",style="dashed", color="red", weight=0]; 5285[label="Integer vuz241 `quot` Integer (Neg (Succ vuz242))",fontsize=16,color="magenta"];5285 -> 5295[label="",style="dashed", color="magenta", weight=3]; 5285 -> 5296[label="",style="dashed", color="magenta", weight=3]; 4141 -> 4130[label="",style="dashed", color="red", weight=0]; 4141[label="Integer vuz59 `quot` Integer (primNegInt (Neg Zero))",fontsize=16,color="magenta"];4141 -> 4180[label="",style="dashed", color="magenta", weight=3]; 5291 -> 5153[label="",style="dashed", color="red", weight=0]; 5291[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat vuz2480 vuz2490 == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (primCmpNat vuz2480 vuz2490 == LT)) `rem` Integer vuz250)",fontsize=16,color="magenta"];5291 -> 5302[label="",style="dashed", color="magenta", weight=3]; 5291 -> 5303[label="",style="dashed", color="magenta", weight=3]; 5292 -> 3940[label="",style="dashed", color="red", weight=0]; 5292[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (GT == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (GT == LT)) `rem` Integer vuz250)",fontsize=16,color="magenta"];5292 -> 5304[label="",style="dashed", color="magenta", weight=3]; 5292 -> 5305[label="",style="dashed", color="magenta", weight=3]; 5292 -> 5306[label="",style="dashed", color="magenta", weight=3]; 5292 -> 5307[label="",style="dashed", color="magenta", weight=3]; 5293[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (LT == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (LT == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5293 -> 5308[label="",style="solid", color="black", weight=3]; 5294[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not (EQ == LT)) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not (EQ == LT)) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5294 -> 5309[label="",style="solid", color="black", weight=3]; 4427[label="Pos (Succ vuz6000)",fontsize=16,color="green",shape="box"];4428[label="Pos (Succ vuz6000)",fontsize=16,color="green",shape="box"];4426[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer vuz222 `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer vuz221 `rem` Integer vuz158)",fontsize=16,color="black",shape="triangle"];4426 -> 4443[label="",style="solid", color="black", weight=3]; 4147[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) False `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal1 (Integer (Pos Zero)) False `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4147 -> 4190[label="",style="solid", color="black", weight=3]; 4148 -> 4426[label="",style="dashed", color="red", weight=0]; 4148[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (Pos Zero) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (Pos Zero) `rem` Integer vuz158)",fontsize=16,color="magenta"];4148 -> 4429[label="",style="dashed", color="magenta", weight=3]; 4148 -> 4430[label="",style="dashed", color="magenta", weight=3]; 4149[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz6000))) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Neg (Succ vuz6000))) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4149 -> 4192[label="",style="solid", color="black", weight=3]; 5298 -> 5218[label="",style="dashed", color="red", weight=0]; 5298[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat vuz2550 vuz2560 == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (primCmpNat vuz2550 vuz2560 == LT)) `rem` Integer vuz257)",fontsize=16,color="magenta"];5298 -> 5311[label="",style="dashed", color="magenta", weight=3]; 5298 -> 5312[label="",style="dashed", color="magenta", weight=3]; 5299[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (GT == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (GT == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5299 -> 5313[label="",style="solid", color="black", weight=3]; 5300 -> 3945[label="",style="dashed", color="red", weight=0]; 5300[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (LT == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (LT == LT)) `rem` Integer vuz257)",fontsize=16,color="magenta"];5300 -> 5314[label="",style="dashed", color="magenta", weight=3]; 5300 -> 5315[label="",style="dashed", color="magenta", weight=3]; 5300 -> 5316[label="",style="dashed", color="magenta", weight=3]; 5300 -> 5317[label="",style="dashed", color="magenta", weight=3]; 5301[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not (EQ == LT)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not (EQ == LT)) `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5301 -> 5318[label="",style="solid", color="black", weight=3]; 4154[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) otherwise `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Neg Zero)) otherwise `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4154 -> 4197[label="",style="solid", color="black", weight=3]; 4155 -> 4426[label="",style="dashed", color="red", weight=0]; 4155[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (Neg Zero) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (Neg Zero) `rem` Integer vuz158)",fontsize=16,color="magenta"];4155 -> 4431[label="",style="dashed", color="magenta", weight=3]; 4155 -> 4432[label="",style="dashed", color="magenta", weight=3]; 5286[label="Integer vuz236 `quot` absReal0 (Integer (Pos (Succ vuz237))) True",fontsize=16,color="black",shape="box"];5286 -> 5297[label="",style="solid", color="black", weight=3]; 4297[label="primQuotInt (Pos vuz590) (Pos vuz2010)",fontsize=16,color="burlywood",shape="box"];5997[label="vuz2010/Succ vuz20100",fontsize=10,color="white",style="solid",shape="box"];4297 -> 5997[label="",style="solid", color="burlywood", weight=9]; 5997 -> 4413[label="",style="solid", color="burlywood", weight=3]; 5998[label="vuz2010/Zero",fontsize=10,color="white",style="solid",shape="box"];4297 -> 5998[label="",style="solid", color="burlywood", weight=9]; 5998 -> 4414[label="",style="solid", color="burlywood", weight=3]; 4298[label="primQuotInt (Pos vuz590) (Neg vuz2010)",fontsize=16,color="burlywood",shape="box"];5999[label="vuz2010/Succ vuz20100",fontsize=10,color="white",style="solid",shape="box"];4298 -> 5999[label="",style="solid", color="burlywood", weight=9]; 5999 -> 4415[label="",style="solid", color="burlywood", weight=3]; 6000[label="vuz2010/Zero",fontsize=10,color="white",style="solid",shape="box"];4298 -> 6000[label="",style="solid", color="burlywood", weight=9]; 6000 -> 4416[label="",style="solid", color="burlywood", weight=3]; 4299[label="primQuotInt (Neg vuz590) (Pos vuz2010)",fontsize=16,color="burlywood",shape="box"];6001[label="vuz2010/Succ vuz20100",fontsize=10,color="white",style="solid",shape="box"];4299 -> 6001[label="",style="solid", color="burlywood", weight=9]; 6001 -> 4417[label="",style="solid", color="burlywood", weight=3]; 6002[label="vuz2010/Zero",fontsize=10,color="white",style="solid",shape="box"];4299 -> 6002[label="",style="solid", color="burlywood", weight=9]; 6002 -> 4418[label="",style="solid", color="burlywood", weight=3]; 4300[label="primQuotInt (Neg vuz590) (Neg vuz2010)",fontsize=16,color="burlywood",shape="box"];6003[label="vuz2010/Succ vuz20100",fontsize=10,color="white",style="solid",shape="box"];4300 -> 6003[label="",style="solid", color="burlywood", weight=9]; 6003 -> 4419[label="",style="solid", color="burlywood", weight=3]; 6004[label="vuz2010/Zero",fontsize=10,color="white",style="solid",shape="box"];4300 -> 6004[label="",style="solid", color="burlywood", weight=9]; 6004 -> 4420[label="",style="solid", color="burlywood", weight=3]; 4161 -> 4130[label="",style="dashed", color="red", weight=0]; 4161[label="Integer vuz59 `quot` Integer (primNegInt (Pos Zero))",fontsize=16,color="magenta"];4161 -> 4205[label="",style="dashed", color="magenta", weight=3]; 4162[label="Neg (Succ vuz6000)",fontsize=16,color="green",shape="box"];5295[label="vuz241",fontsize=16,color="green",shape="box"];5296[label="Neg (Succ vuz242)",fontsize=16,color="green",shape="box"];4180 -> 471[label="",style="dashed", color="red", weight=0]; 4180[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];4180 -> 4212[label="",style="dashed", color="magenta", weight=3]; 5302[label="vuz2480",fontsize=16,color="green",shape="box"];5303[label="vuz2490",fontsize=16,color="green",shape="box"];5304[label="vuz250",fontsize=16,color="green",shape="box"];5305[label="vuz246",fontsize=16,color="green",shape="box"];5306[label="vuz247",fontsize=16,color="green",shape="box"];5307[label="vuz251",fontsize=16,color="green",shape="box"];5308[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not True) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not True) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5308 -> 5319[label="",style="solid", color="black", weight=3]; 5309 -> 3987[label="",style="dashed", color="red", weight=0]; 5309[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) (not False) `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) (not False) `rem` Integer vuz250)",fontsize=16,color="magenta"];5309 -> 5320[label="",style="dashed", color="magenta", weight=3]; 5309 -> 5321[label="",style="dashed", color="magenta", weight=3]; 5309 -> 5322[label="",style="dashed", color="magenta", weight=3]; 5309 -> 5323[label="",style="dashed", color="magenta", weight=3]; 4443 -> 4491[label="",style="dashed", color="red", weight=0]; 4443[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primRemInt vuz222 vuz158) == vuz186) (Integer vuz158) (Integer (primRemInt vuz222 vuz158))",fontsize=16,color="magenta"];4443 -> 4492[label="",style="dashed", color="magenta", weight=3]; 4443 -> 4493[label="",style="dashed", color="magenta", weight=3]; 4190[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) otherwise `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Pos Zero)) otherwise `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4190 -> 4301[label="",style="solid", color="black", weight=3]; 4429[label="Pos Zero",fontsize=16,color="green",shape="box"];4430[label="Pos Zero",fontsize=16,color="green",shape="box"];4192[label="Integer vuz59 `quot` gcd0Gcd'1 ((`negate` Integer (Neg (Succ vuz6000))) `rem` Integer vuz158 == vuz186) (Integer vuz158) ((`negate` Integer (Neg (Succ vuz6000))) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4192 -> 4304[label="",style="solid", color="black", weight=3]; 5311[label="vuz2560",fontsize=16,color="green",shape="box"];5312[label="vuz2550",fontsize=16,color="green",shape="box"];5313[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not False) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not False) `rem` Integer vuz257)",fontsize=16,color="black",shape="triangle"];5313 -> 5326[label="",style="solid", color="black", weight=3]; 5314[label="vuz257",fontsize=16,color="green",shape="box"];5315[label="vuz254",fontsize=16,color="green",shape="box"];5316[label="vuz253",fontsize=16,color="green",shape="box"];5317[label="vuz258",fontsize=16,color="green",shape="box"];5318 -> 5313[label="",style="dashed", color="red", weight=0]; 5318[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) (not False) `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) (not False) `rem` Integer vuz257)",fontsize=16,color="magenta"];4197[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Neg Zero)) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4197 -> 4310[label="",style="solid", color="black", weight=3]; 4431[label="Neg Zero",fontsize=16,color="green",shape="box"];4432[label="Neg Zero",fontsize=16,color="green",shape="box"];5297[label="Integer vuz236 `quot` (`negate` Integer (Pos (Succ vuz237)))",fontsize=16,color="black",shape="box"];5297 -> 5310[label="",style="solid", color="black", weight=3]; 4413[label="primQuotInt (Pos vuz590) (Pos (Succ vuz20100))",fontsize=16,color="black",shape="box"];4413 -> 4444[label="",style="solid", color="black", weight=3]; 4414[label="primQuotInt (Pos vuz590) (Pos Zero)",fontsize=16,color="black",shape="box"];4414 -> 4445[label="",style="solid", color="black", weight=3]; 4415[label="primQuotInt (Pos vuz590) (Neg (Succ vuz20100))",fontsize=16,color="black",shape="box"];4415 -> 4446[label="",style="solid", color="black", weight=3]; 4416[label="primQuotInt (Pos vuz590) (Neg Zero)",fontsize=16,color="black",shape="box"];4416 -> 4447[label="",style="solid", color="black", weight=3]; 4417[label="primQuotInt (Neg vuz590) (Pos (Succ vuz20100))",fontsize=16,color="black",shape="box"];4417 -> 4448[label="",style="solid", color="black", weight=3]; 4418[label="primQuotInt (Neg vuz590) (Pos Zero)",fontsize=16,color="black",shape="box"];4418 -> 4449[label="",style="solid", color="black", weight=3]; 4419[label="primQuotInt (Neg vuz590) (Neg (Succ vuz20100))",fontsize=16,color="black",shape="box"];4419 -> 4450[label="",style="solid", color="black", weight=3]; 4420[label="primQuotInt (Neg vuz590) (Neg Zero)",fontsize=16,color="black",shape="box"];4420 -> 4451[label="",style="solid", color="black", weight=3]; 4205 -> 471[label="",style="dashed", color="red", weight=0]; 4205[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];4205 -> 4320[label="",style="dashed", color="magenta", weight=3]; 4212[label="Neg Zero",fontsize=16,color="green",shape="box"];5319[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz247))) False `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal1 (Integer (Pos (Succ vuz247))) False `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5319 -> 5327[label="",style="solid", color="black", weight=3]; 5320[label="vuz250",fontsize=16,color="green",shape="box"];5321[label="vuz246",fontsize=16,color="green",shape="box"];5322[label="vuz247",fontsize=16,color="green",shape="box"];5323[label="vuz251",fontsize=16,color="green",shape="box"];4492 -> 2122[label="",style="dashed", color="red", weight=0]; 4492[label="primRemInt vuz222 vuz158",fontsize=16,color="magenta"];4492 -> 4511[label="",style="dashed", color="magenta", weight=3]; 4492 -> 4512[label="",style="dashed", color="magenta", weight=3]; 4493 -> 3373[label="",style="dashed", color="red", weight=0]; 4493[label="Integer (primRemInt vuz222 vuz158) == vuz186",fontsize=16,color="magenta"];4493 -> 4513[label="",style="dashed", color="magenta", weight=3]; 4493 -> 4514[label="",style="dashed", color="magenta", weight=3]; 4491[label="Integer vuz59 `quot` gcd0Gcd'1 vuz223 (Integer vuz158) (Integer vuz224)",fontsize=16,color="burlywood",shape="triangle"];6005[label="vuz223/False",fontsize=10,color="white",style="solid",shape="box"];4491 -> 6005[label="",style="solid", color="burlywood", weight=9]; 6005 -> 4515[label="",style="solid", color="burlywood", weight=3]; 6006[label="vuz223/True",fontsize=10,color="white",style="solid",shape="box"];4491 -> 6006[label="",style="solid", color="burlywood", weight=9]; 6006 -> 4516[label="",style="solid", color="burlywood", weight=3]; 4301[label="Integer vuz59 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) True `rem` Integer vuz158 == vuz186) (Integer vuz158) (absReal0 (Integer (Pos Zero)) True `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4301 -> 4421[label="",style="solid", color="black", weight=3]; 4304 -> 4426[label="",style="dashed", color="red", weight=0]; 4304[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg (Succ vuz6000))) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (primNegInt (Neg (Succ vuz6000))) `rem` Integer vuz158)",fontsize=16,color="magenta"];4304 -> 4433[label="",style="dashed", color="magenta", weight=3]; 4304 -> 4434[label="",style="dashed", color="magenta", weight=3]; 5326[label="Integer vuz253 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz254))) True `rem` Integer vuz257 == vuz258) (Integer vuz257) (absReal1 (Integer (Neg (Succ vuz254))) True `rem` Integer vuz257)",fontsize=16,color="black",shape="box"];5326 -> 5329[label="",style="solid", color="black", weight=3]; 4310[label="Integer vuz59 `quot` gcd0Gcd'1 ((`negate` Integer (Neg Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) ((`negate` Integer (Neg Zero)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4310 -> 4457[label="",style="solid", color="black", weight=3]; 5310 -> 4130[label="",style="dashed", color="red", weight=0]; 5310[label="Integer vuz236 `quot` Integer (primNegInt (Pos (Succ vuz237)))",fontsize=16,color="magenta"];5310 -> 5324[label="",style="dashed", color="magenta", weight=3]; 5310 -> 5325[label="",style="dashed", color="magenta", weight=3]; 4444[label="Pos (primDivNatS vuz590 (Succ vuz20100))",fontsize=16,color="green",shape="box"];4444 -> 4517[label="",style="dashed", color="green", weight=3]; 4445 -> 1176[label="",style="dashed", color="red", weight=0]; 4445[label="error []",fontsize=16,color="magenta"];4446[label="Neg (primDivNatS vuz590 (Succ vuz20100))",fontsize=16,color="green",shape="box"];4446 -> 4518[label="",style="dashed", color="green", weight=3]; 4447 -> 1176[label="",style="dashed", color="red", weight=0]; 4447[label="error []",fontsize=16,color="magenta"];4448[label="Neg (primDivNatS vuz590 (Succ vuz20100))",fontsize=16,color="green",shape="box"];4448 -> 4519[label="",style="dashed", color="green", weight=3]; 4449 -> 1176[label="",style="dashed", color="red", weight=0]; 4449[label="error []",fontsize=16,color="magenta"];4450[label="Pos (primDivNatS vuz590 (Succ vuz20100))",fontsize=16,color="green",shape="box"];4450 -> 4520[label="",style="dashed", color="green", weight=3]; 4451 -> 1176[label="",style="dashed", color="red", weight=0]; 4451[label="error []",fontsize=16,color="magenta"];4320[label="Pos Zero",fontsize=16,color="green",shape="box"];5327[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz247))) otherwise `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal0 (Integer (Pos (Succ vuz247))) otherwise `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5327 -> 5330[label="",style="solid", color="black", weight=3]; 4511[label="vuz222",fontsize=16,color="green",shape="box"];4512[label="vuz158",fontsize=16,color="green",shape="box"];4513 -> 2122[label="",style="dashed", color="red", weight=0]; 4513[label="primRemInt vuz222 vuz158",fontsize=16,color="magenta"];4513 -> 4551[label="",style="dashed", color="magenta", weight=3]; 4513 -> 4552[label="",style="dashed", color="magenta", weight=3]; 4514[label="vuz186",fontsize=16,color="green",shape="box"];4515[label="Integer vuz59 `quot` gcd0Gcd'1 False (Integer vuz158) (Integer vuz224)",fontsize=16,color="black",shape="box"];4515 -> 4553[label="",style="solid", color="black", weight=3]; 4516[label="Integer vuz59 `quot` gcd0Gcd'1 True (Integer vuz158) (Integer vuz224)",fontsize=16,color="black",shape="box"];4516 -> 4554[label="",style="solid", color="black", weight=3]; 4421[label="Integer vuz59 `quot` gcd0Gcd'1 ((`negate` Integer (Pos Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) ((`negate` Integer (Pos Zero)) `rem` Integer vuz158)",fontsize=16,color="black",shape="box"];4421 -> 4474[label="",style="solid", color="black", weight=3]; 4433 -> 471[label="",style="dashed", color="red", weight=0]; 4433[label="primNegInt (Neg (Succ vuz6000))",fontsize=16,color="magenta"];4433 -> 4475[label="",style="dashed", color="magenta", weight=3]; 4434 -> 471[label="",style="dashed", color="red", weight=0]; 4434[label="primNegInt (Neg (Succ vuz6000))",fontsize=16,color="magenta"];4434 -> 4476[label="",style="dashed", color="magenta", weight=3]; 5329 -> 4426[label="",style="dashed", color="red", weight=0]; 5329[label="Integer vuz253 `quot` gcd0Gcd'1 (Integer (Neg (Succ vuz254)) `rem` Integer vuz257 == vuz258) (Integer vuz257) (Integer (Neg (Succ vuz254)) `rem` Integer vuz257)",fontsize=16,color="magenta"];5329 -> 5331[label="",style="dashed", color="magenta", weight=3]; 5329 -> 5332[label="",style="dashed", color="magenta", weight=3]; 5329 -> 5333[label="",style="dashed", color="magenta", weight=3]; 5329 -> 5334[label="",style="dashed", color="magenta", weight=3]; 5329 -> 5335[label="",style="dashed", color="magenta", weight=3]; 4457 -> 4426[label="",style="dashed", color="red", weight=0]; 4457[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (primNegInt (Neg Zero)) `rem` Integer vuz158)",fontsize=16,color="magenta"];4457 -> 4526[label="",style="dashed", color="magenta", weight=3]; 4457 -> 4527[label="",style="dashed", color="magenta", weight=3]; 5324[label="vuz236",fontsize=16,color="green",shape="box"];5325 -> 471[label="",style="dashed", color="red", weight=0]; 5325[label="primNegInt (Pos (Succ vuz237))",fontsize=16,color="magenta"];5325 -> 5328[label="",style="dashed", color="magenta", weight=3]; 4517 -> 1210[label="",style="dashed", color="red", weight=0]; 4517[label="primDivNatS vuz590 (Succ vuz20100)",fontsize=16,color="magenta"];4517 -> 4555[label="",style="dashed", color="magenta", weight=3]; 4517 -> 4556[label="",style="dashed", color="magenta", weight=3]; 4518 -> 1210[label="",style="dashed", color="red", weight=0]; 4518[label="primDivNatS vuz590 (Succ vuz20100)",fontsize=16,color="magenta"];4518 -> 4557[label="",style="dashed", color="magenta", weight=3]; 4518 -> 4558[label="",style="dashed", color="magenta", weight=3]; 4519 -> 1210[label="",style="dashed", color="red", weight=0]; 4519[label="primDivNatS vuz590 (Succ vuz20100)",fontsize=16,color="magenta"];4519 -> 4559[label="",style="dashed", color="magenta", weight=3]; 4519 -> 4560[label="",style="dashed", color="magenta", weight=3]; 4520 -> 1210[label="",style="dashed", color="red", weight=0]; 4520[label="primDivNatS vuz590 (Succ vuz20100)",fontsize=16,color="magenta"];4520 -> 4561[label="",style="dashed", color="magenta", weight=3]; 4520 -> 4562[label="",style="dashed", color="magenta", weight=3]; 5330[label="Integer vuz246 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz247))) True `rem` Integer vuz250 == vuz251) (Integer vuz250) (absReal0 (Integer (Pos (Succ vuz247))) True `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5330 -> 5336[label="",style="solid", color="black", weight=3]; 4551[label="vuz222",fontsize=16,color="green",shape="box"];4552[label="vuz158",fontsize=16,color="green",shape="box"];4553[label="Integer vuz59 `quot` gcd0Gcd'0 (Integer vuz158) (Integer vuz224)",fontsize=16,color="black",shape="box"];4553 -> 4596[label="",style="solid", color="black", weight=3]; 4554 -> 4130[label="",style="dashed", color="red", weight=0]; 4554[label="Integer vuz59 `quot` Integer vuz158",fontsize=16,color="magenta"];4554 -> 4597[label="",style="dashed", color="magenta", weight=3]; 4474 -> 4426[label="",style="dashed", color="red", weight=0]; 4474[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos Zero)) `rem` Integer vuz158 == vuz186) (Integer vuz158) (Integer (primNegInt (Pos Zero)) `rem` Integer vuz158)",fontsize=16,color="magenta"];4474 -> 4547[label="",style="dashed", color="magenta", weight=3]; 4474 -> 4548[label="",style="dashed", color="magenta", weight=3]; 4475[label="Neg (Succ vuz6000)",fontsize=16,color="green",shape="box"];4476[label="Neg (Succ vuz6000)",fontsize=16,color="green",shape="box"];5331[label="vuz257",fontsize=16,color="green",shape="box"];5332[label="Neg (Succ vuz254)",fontsize=16,color="green",shape="box"];5333[label="vuz253",fontsize=16,color="green",shape="box"];5334[label="Neg (Succ vuz254)",fontsize=16,color="green",shape="box"];5335[label="vuz258",fontsize=16,color="green",shape="box"];4526 -> 471[label="",style="dashed", color="red", weight=0]; 4526[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];4526 -> 4570[label="",style="dashed", color="magenta", weight=3]; 4527 -> 471[label="",style="dashed", color="red", weight=0]; 4527[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];4527 -> 4571[label="",style="dashed", color="magenta", weight=3]; 5328[label="Pos (Succ vuz237)",fontsize=16,color="green",shape="box"];4555[label="vuz20100",fontsize=16,color="green",shape="box"];4556[label="vuz590",fontsize=16,color="green",shape="box"];4557[label="vuz20100",fontsize=16,color="green",shape="box"];4558[label="vuz590",fontsize=16,color="green",shape="box"];4559[label="vuz20100",fontsize=16,color="green",shape="box"];4560[label="vuz590",fontsize=16,color="green",shape="box"];4561[label="vuz20100",fontsize=16,color="green",shape="box"];4562[label="vuz590",fontsize=16,color="green",shape="box"];5336[label="Integer vuz246 `quot` gcd0Gcd'1 ((`negate` Integer (Pos (Succ vuz247))) `rem` Integer vuz250 == vuz251) (Integer vuz250) ((`negate` Integer (Pos (Succ vuz247))) `rem` Integer vuz250)",fontsize=16,color="black",shape="box"];5336 -> 5337[label="",style="solid", color="black", weight=3]; 4596[label="Integer vuz59 `quot` gcd0Gcd' (Integer vuz224) (Integer vuz158 `rem` Integer vuz224)",fontsize=16,color="black",shape="box"];4596 -> 4630[label="",style="solid", color="black", weight=3]; 4597[label="vuz158",fontsize=16,color="green",shape="box"];4547 -> 471[label="",style="dashed", color="red", weight=0]; 4547[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];4547 -> 4592[label="",style="dashed", color="magenta", weight=3]; 4548 -> 471[label="",style="dashed", color="red", weight=0]; 4548[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];4548 -> 4593[label="",style="dashed", color="magenta", weight=3]; 4570[label="Neg Zero",fontsize=16,color="green",shape="box"];4571[label="Neg Zero",fontsize=16,color="green",shape="box"];5337 -> 4426[label="",style="dashed", color="red", weight=0]; 5337[label="Integer vuz246 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos (Succ vuz247))) `rem` Integer vuz250 == vuz251) (Integer vuz250) (Integer (primNegInt (Pos (Succ vuz247))) `rem` Integer vuz250)",fontsize=16,color="magenta"];5337 -> 5338[label="",style="dashed", color="magenta", weight=3]; 5337 -> 5339[label="",style="dashed", color="magenta", weight=3]; 5337 -> 5340[label="",style="dashed", color="magenta", weight=3]; 5337 -> 5341[label="",style="dashed", color="magenta", weight=3]; 5337 -> 5342[label="",style="dashed", color="magenta", weight=3]; 4630[label="Integer vuz59 `quot` gcd0Gcd'2 (Integer vuz224) (Integer vuz158 `rem` Integer vuz224)",fontsize=16,color="black",shape="box"];4630 -> 4658[label="",style="solid", color="black", weight=3]; 4592[label="Pos Zero",fontsize=16,color="green",shape="box"];4593[label="Pos Zero",fontsize=16,color="green",shape="box"];5338[label="vuz250",fontsize=16,color="green",shape="box"];5339 -> 471[label="",style="dashed", color="red", weight=0]; 5339[label="primNegInt (Pos (Succ vuz247))",fontsize=16,color="magenta"];5339 -> 5343[label="",style="dashed", color="magenta", weight=3]; 5340[label="vuz246",fontsize=16,color="green",shape="box"];5341 -> 471[label="",style="dashed", color="red", weight=0]; 5341[label="primNegInt (Pos (Succ vuz247))",fontsize=16,color="magenta"];5341 -> 5344[label="",style="dashed", color="magenta", weight=3]; 5342[label="vuz251",fontsize=16,color="green",shape="box"];4658 -> 4426[label="",style="dashed", color="red", weight=0]; 4658[label="Integer vuz59 `quot` gcd0Gcd'1 (Integer vuz158 `rem` Integer vuz224 == fromInt (Pos Zero)) (Integer vuz224) (Integer vuz158 `rem` Integer vuz224)",fontsize=16,color="magenta"];4658 -> 4697[label="",style="dashed", color="magenta", weight=3]; 4658 -> 4698[label="",style="dashed", color="magenta", weight=3]; 4658 -> 4699[label="",style="dashed", color="magenta", weight=3]; 4658 -> 4700[label="",style="dashed", color="magenta", weight=3]; 5343[label="Pos (Succ vuz247)",fontsize=16,color="green",shape="box"];5344[label="Pos (Succ vuz247)",fontsize=16,color="green",shape="box"];4697[label="vuz224",fontsize=16,color="green",shape="box"];4698[label="vuz158",fontsize=16,color="green",shape="box"];4699[label="vuz158",fontsize=16,color="green",shape="box"];4700 -> 2031[label="",style="dashed", color="red", weight=0]; 4700[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];} ---------------------------------------- (1311) Obligation: Q DP problem: P is empty. R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (1312) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (1313) YES